@kenkaiiii/ggcoder 4.3.212 → 4.3.214

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 (312) hide show
  1. package/README.md +5 -8
  2. package/dist/cli.d.ts +3 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +112 -61
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/continue-replay-inventory.test.d.ts +2 -0
  7. package/dist/core/continue-replay-inventory.test.d.ts.map +1 -0
  8. package/dist/core/continue-replay-inventory.test.js +42 -0
  9. package/dist/core/continue-replay-inventory.test.js.map +1 -0
  10. package/dist/core/goal-controller.d.ts +2 -0
  11. package/dist/core/goal-controller.d.ts.map +1 -1
  12. package/dist/core/goal-controller.js +283 -24
  13. package/dist/core/goal-controller.js.map +1 -1
  14. package/dist/core/goal-controller.test.js +413 -16
  15. package/dist/core/goal-controller.test.js.map +1 -1
  16. package/dist/core/goal-lifecycle-smoke.test.js +48 -6
  17. package/dist/core/goal-lifecycle-smoke.test.js.map +1 -1
  18. package/dist/core/goal-prerequisites.d.ts +5 -0
  19. package/dist/core/goal-prerequisites.d.ts.map +1 -1
  20. package/dist/core/goal-prerequisites.js +37 -0
  21. package/dist/core/goal-prerequisites.js.map +1 -1
  22. package/dist/core/goal-prerequisites.test.js +29 -1
  23. package/dist/core/goal-prerequisites.test.js.map +1 -1
  24. package/dist/core/goal-references.d.ts +14 -0
  25. package/dist/core/goal-references.d.ts.map +1 -0
  26. package/dist/core/goal-references.js +153 -0
  27. package/dist/core/goal-references.js.map +1 -0
  28. package/dist/core/goal-references.test.d.ts +2 -0
  29. package/dist/core/goal-references.test.d.ts.map +1 -0
  30. package/dist/core/goal-references.test.js +77 -0
  31. package/dist/core/goal-references.test.js.map +1 -0
  32. package/dist/core/goal-store.d.ts +25 -0
  33. package/dist/core/goal-store.d.ts.map +1 -1
  34. package/dist/core/goal-store.js +150 -36
  35. package/dist/core/goal-store.js.map +1 -1
  36. package/dist/core/goal-store.test.js +19 -2
  37. package/dist/core/goal-store.test.js.map +1 -1
  38. package/dist/core/goal-verifier.d.ts.map +1 -1
  39. package/dist/core/goal-verifier.js +4 -1
  40. package/dist/core/goal-verifier.js.map +1 -1
  41. package/dist/core/goal-verifier.test.js +43 -0
  42. package/dist/core/goal-verifier.test.js.map +1 -1
  43. package/dist/core/goal-worker.d.ts +2 -0
  44. package/dist/core/goal-worker.d.ts.map +1 -1
  45. package/dist/core/goal-worker.js +33 -9
  46. package/dist/core/goal-worker.js.map +1 -1
  47. package/dist/core/goal-worker.test.js +49 -1
  48. package/dist/core/goal-worker.test.js.map +1 -1
  49. package/dist/core/prompt-commands.d.ts.map +1 -1
  50. package/dist/core/prompt-commands.js +28 -846
  51. package/dist/core/prompt-commands.js.map +1 -1
  52. package/dist/core/prompt-commands.test.js +40 -78
  53. package/dist/core/prompt-commands.test.js.map +1 -1
  54. package/dist/core/runtime-mode.d.ts +14 -0
  55. package/dist/core/runtime-mode.d.ts.map +1 -0
  56. package/dist/core/runtime-mode.js +10 -0
  57. package/dist/core/runtime-mode.js.map +1 -0
  58. package/dist/core/session-restore-display.test.d.ts +2 -0
  59. package/dist/core/session-restore-display.test.d.ts.map +1 -0
  60. package/dist/core/session-restore-display.test.js +100 -0
  61. package/dist/core/session-restore-display.test.js.map +1 -0
  62. package/dist/core/verify-commands.js +4 -4
  63. package/dist/core/verify-commands.js.map +1 -1
  64. package/dist/system-prompt.d.ts +2 -1
  65. package/dist/system-prompt.d.ts.map +1 -1
  66. package/dist/system-prompt.js +51 -37
  67. package/dist/system-prompt.js.map +1 -1
  68. package/dist/system-prompt.test.js +147 -40
  69. package/dist/system-prompt.test.js.map +1 -1
  70. package/dist/tools/bash.d.ts +3 -2
  71. package/dist/tools/bash.d.ts.map +1 -1
  72. package/dist/tools/bash.js +11 -4
  73. package/dist/tools/bash.js.map +1 -1
  74. package/dist/tools/edit.d.ts +5 -3
  75. package/dist/tools/edit.d.ts.map +1 -1
  76. package/dist/tools/edit.js +14 -4
  77. package/dist/tools/edit.js.map +1 -1
  78. package/dist/tools/edit.test.js +0 -10
  79. package/dist/tools/edit.test.js.map +1 -1
  80. package/dist/tools/goal-mode.test.d.ts +2 -0
  81. package/dist/tools/goal-mode.test.d.ts.map +1 -0
  82. package/dist/tools/goal-mode.test.js +121 -0
  83. package/dist/tools/goal-mode.test.js.map +1 -0
  84. package/dist/tools/goals.d.ts +15 -3
  85. package/dist/tools/goals.d.ts.map +1 -1
  86. package/dist/tools/goals.js +336 -26
  87. package/dist/tools/goals.js.map +1 -1
  88. package/dist/tools/goals.test.js +346 -6
  89. package/dist/tools/goals.test.js.map +1 -1
  90. package/dist/tools/index.d.ts +7 -10
  91. package/dist/tools/index.d.ts.map +1 -1
  92. package/dist/tools/index.js +6 -19
  93. package/dist/tools/index.js.map +1 -1
  94. package/dist/tools/plan-mode.test.js +34 -224
  95. package/dist/tools/plan-mode.test.js.map +1 -1
  96. package/dist/tools/prompt-hints.d.ts.map +1 -1
  97. package/dist/tools/prompt-hints.js +2 -6
  98. package/dist/tools/prompt-hints.js.map +1 -1
  99. package/dist/tools/subagent.d.ts +3 -2
  100. package/dist/tools/subagent.d.ts.map +1 -1
  101. package/dist/tools/subagent.js +4 -9
  102. package/dist/tools/subagent.js.map +1 -1
  103. package/dist/tools/write.d.ts +5 -3
  104. package/dist/tools/write.d.ts.map +1 -1
  105. package/dist/tools/write.js +14 -13
  106. package/dist/tools/write.js.map +1 -1
  107. package/dist/tools/write.test.js +0 -16
  108. package/dist/tools/write.test.js.map +1 -1
  109. package/dist/ui/App.d.ts +145 -28
  110. package/dist/ui/App.d.ts.map +1 -1
  111. package/dist/ui/App.js +1153 -864
  112. package/dist/ui/App.js.map +1 -1
  113. package/dist/ui/activity-phrases.d.ts.map +1 -1
  114. package/dist/ui/activity-phrases.js +0 -2
  115. package/dist/ui/activity-phrases.js.map +1 -1
  116. package/dist/ui/app-state-persistence.test.js +173 -5
  117. package/dist/ui/app-state-persistence.test.js.map +1 -1
  118. package/dist/ui/chat-layout-pinning.test.d.ts +2 -0
  119. package/dist/ui/chat-layout-pinning.test.d.ts.map +1 -0
  120. package/dist/ui/chat-layout-pinning.test.js +407 -0
  121. package/dist/ui/chat-layout-pinning.test.js.map +1 -0
  122. package/dist/ui/components/ActivityIndicator.d.ts +1 -2
  123. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  124. package/dist/ui/components/ActivityIndicator.js +63 -94
  125. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  126. package/dist/ui/components/AssistantMessage.d.ts +6 -2
  127. package/dist/ui/components/AssistantMessage.d.ts.map +1 -1
  128. package/dist/ui/components/AssistantMessage.js +9 -4
  129. package/dist/ui/components/AssistantMessage.js.map +1 -1
  130. package/dist/ui/components/AssistantMessage.test.d.ts +2 -0
  131. package/dist/ui/components/AssistantMessage.test.d.ts.map +1 -0
  132. package/dist/ui/components/AssistantMessage.test.js +369 -0
  133. package/dist/ui/components/AssistantMessage.test.js.map +1 -0
  134. package/dist/ui/components/BackgroundTasksBar.d.ts +1 -3
  135. package/dist/ui/components/BackgroundTasksBar.d.ts.map +1 -1
  136. package/dist/ui/components/BackgroundTasksBar.js +2 -4
  137. package/dist/ui/components/BackgroundTasksBar.js.map +1 -1
  138. package/dist/ui/components/Banner.d.ts +1 -3
  139. package/dist/ui/components/Banner.d.ts.map +1 -1
  140. package/dist/ui/components/Banner.js +7 -3
  141. package/dist/ui/components/Banner.js.map +1 -1
  142. package/dist/ui/components/Footer.d.ts +26 -4
  143. package/dist/ui/components/Footer.d.ts.map +1 -1
  144. package/dist/ui/components/Footer.js +73 -21
  145. package/dist/ui/components/Footer.js.map +1 -1
  146. package/dist/ui/components/GoalOverlay.d.ts +28 -20
  147. package/dist/ui/components/GoalOverlay.d.ts.map +1 -1
  148. package/dist/ui/components/GoalOverlay.js +283 -253
  149. package/dist/ui/components/GoalOverlay.js.map +1 -1
  150. package/dist/ui/components/InputArea.d.ts +2 -6
  151. package/dist/ui/components/InputArea.d.ts.map +1 -1
  152. package/dist/ui/components/InputArea.js +40 -32
  153. package/dist/ui/components/InputArea.js.map +1 -1
  154. package/dist/ui/components/InputArea.test.js +11 -1
  155. package/dist/ui/components/InputArea.test.js.map +1 -1
  156. package/dist/ui/components/Markdown.d.ts +11 -11
  157. package/dist/ui/components/Markdown.d.ts.map +1 -1
  158. package/dist/ui/components/Markdown.js +25 -198
  159. package/dist/ui/components/Markdown.js.map +1 -1
  160. package/dist/ui/components/PlanOverlay.d.ts.map +1 -1
  161. package/dist/ui/components/PlanOverlay.js +1 -1
  162. package/dist/ui/components/PlanOverlay.js.map +1 -1
  163. package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
  164. package/dist/ui/components/ServerToolExecution.js +3 -2
  165. package/dist/ui/components/ServerToolExecution.js.map +1 -1
  166. package/dist/ui/components/SlashCommandMenu.d.ts +4 -3
  167. package/dist/ui/components/SlashCommandMenu.d.ts.map +1 -1
  168. package/dist/ui/components/SlashCommandMenu.js +38 -26
  169. package/dist/ui/components/SlashCommandMenu.js.map +1 -1
  170. package/dist/ui/components/StreamingArea.d.ts +11 -2
  171. package/dist/ui/components/StreamingArea.d.ts.map +1 -1
  172. package/dist/ui/components/StreamingArea.js +20 -23
  173. package/dist/ui/components/StreamingArea.js.map +1 -1
  174. package/dist/ui/components/StreamingArea.test.d.ts +2 -0
  175. package/dist/ui/components/StreamingArea.test.d.ts.map +1 -0
  176. package/dist/ui/components/StreamingArea.test.js +18 -0
  177. package/dist/ui/components/StreamingArea.test.js.map +1 -0
  178. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  179. package/dist/ui/components/ToolExecution.js +11 -27
  180. package/dist/ui/components/ToolExecution.js.map +1 -1
  181. package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
  182. package/dist/ui/components/ToolGroupExecution.js +9 -124
  183. package/dist/ui/components/ToolGroupExecution.js.map +1 -1
  184. package/dist/ui/components/UserMessage.d.ts.map +1 -1
  185. package/dist/ui/components/UserMessage.js +15 -10
  186. package/dist/ui/components/UserMessage.js.map +1 -1
  187. package/dist/ui/components/UserMessage.test.d.ts +2 -0
  188. package/dist/ui/components/UserMessage.test.d.ts.map +1 -0
  189. package/dist/ui/components/UserMessage.test.js +39 -0
  190. package/dist/ui/components/UserMessage.test.js.map +1 -0
  191. package/dist/ui/footer-status-layout.test.js +21 -7
  192. package/dist/ui/footer-status-layout.test.js.map +1 -1
  193. package/dist/ui/goal-events.d.ts +13 -0
  194. package/dist/ui/goal-events.d.ts.map +1 -1
  195. package/dist/ui/goal-events.js +81 -16
  196. package/dist/ui/goal-events.js.map +1 -1
  197. package/dist/ui/goal-events.test.js +76 -2
  198. package/dist/ui/goal-events.test.js.map +1 -1
  199. package/dist/ui/goal-lifecycle-orchestration.test.js +131 -34
  200. package/dist/ui/goal-lifecycle-orchestration.test.js.map +1 -1
  201. package/dist/ui/goal-overlay.test.js +121 -43
  202. package/dist/ui/goal-overlay.test.js.map +1 -1
  203. package/dist/ui/goal-summary.d.ts +14 -0
  204. package/dist/ui/goal-summary.d.ts.map +1 -0
  205. package/dist/ui/goal-summary.js +194 -0
  206. package/dist/ui/goal-summary.js.map +1 -0
  207. package/dist/ui/hooks/useAgentLoop.d.ts +8 -2
  208. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  209. package/dist/ui/hooks/useAgentLoop.js +20 -9
  210. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  211. package/dist/ui/hooks/useAgentLoop.test.d.ts +2 -0
  212. package/dist/ui/hooks/useAgentLoop.test.d.ts.map +1 -0
  213. package/dist/ui/hooks/useAgentLoop.test.js +8 -0
  214. package/dist/ui/hooks/useAgentLoop.test.js.map +1 -0
  215. package/dist/ui/hooks/useTerminalSize.d.ts +5 -9
  216. package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -1
  217. package/dist/ui/hooks/useTerminalSize.js +9 -14
  218. package/dist/ui/hooks/useTerminalSize.js.map +1 -1
  219. package/dist/ui/live-item-flush.d.ts +2 -2
  220. package/dist/ui/live-item-flush.d.ts.map +1 -1
  221. package/dist/ui/live-item-flush.js +8 -4
  222. package/dist/ui/live-item-flush.js.map +1 -1
  223. package/dist/ui/long-prompt-regression-harness.test.d.ts +2 -0
  224. package/dist/ui/long-prompt-regression-harness.test.d.ts.map +1 -0
  225. package/dist/ui/long-prompt-regression-harness.test.js +195 -0
  226. package/dist/ui/long-prompt-regression-harness.test.js.map +1 -0
  227. package/dist/ui/plan-overlay.test.js +7 -29
  228. package/dist/ui/plan-overlay.test.js.map +1 -1
  229. package/dist/ui/queued-message.test.d.ts.map +1 -1
  230. package/dist/ui/queued-message.test.js +76 -14
  231. package/dist/ui/queued-message.test.js.map +1 -1
  232. package/dist/ui/render.d.ts +21 -24
  233. package/dist/ui/render.d.ts.map +1 -1
  234. package/dist/ui/render.js +46 -28
  235. package/dist/ui/render.js.map +1 -1
  236. package/dist/ui/render.test.d.ts +2 -0
  237. package/dist/ui/render.test.d.ts.map +1 -0
  238. package/dist/ui/render.test.js +16 -0
  239. package/dist/ui/render.test.js.map +1 -0
  240. package/dist/ui/scroll-stabilization.test.js +1 -1
  241. package/dist/ui/scroll-stabilization.test.js.map +1 -1
  242. package/dist/ui/slash-command-images.test.js +79 -4
  243. package/dist/ui/slash-command-images.test.js.map +1 -1
  244. package/dist/ui/terminal-history.d.ts +26 -0
  245. package/dist/ui/terminal-history.d.ts.map +1 -0
  246. package/dist/ui/terminal-history.js +910 -0
  247. package/dist/ui/terminal-history.js.map +1 -0
  248. package/dist/ui/terminal-history.test.d.ts +2 -0
  249. package/dist/ui/terminal-history.test.d.ts.map +1 -0
  250. package/dist/ui/terminal-history.test.js +314 -0
  251. package/dist/ui/terminal-history.test.js.map +1 -0
  252. package/dist/ui/tool-group-summary.d.ts +16 -0
  253. package/dist/ui/tool-group-summary.d.ts.map +1 -0
  254. package/dist/ui/tool-group-summary.js +123 -0
  255. package/dist/ui/tool-group-summary.js.map +1 -0
  256. package/dist/ui/tui-history-parity.test.d.ts +2 -0
  257. package/dist/ui/tui-history-parity.test.d.ts.map +1 -0
  258. package/dist/ui/tui-history-parity.test.js +243 -0
  259. package/dist/ui/tui-history-parity.test.js.map +1 -0
  260. package/dist/ui/utils/assistant-stream-split.d.ts +6 -0
  261. package/dist/ui/utils/assistant-stream-split.d.ts.map +1 -0
  262. package/dist/ui/utils/assistant-stream-split.js +37 -0
  263. package/dist/ui/utils/assistant-stream-split.js.map +1 -0
  264. package/dist/ui/utils/assistant-stream-split.test.d.ts +2 -0
  265. package/dist/ui/utils/assistant-stream-split.test.d.ts.map +1 -0
  266. package/dist/ui/utils/assistant-stream-split.test.js +58 -0
  267. package/dist/ui/utils/assistant-stream-split.test.js.map +1 -0
  268. package/dist/ui/utils/latex-to-unicode.d.ts +22 -0
  269. package/dist/ui/utils/latex-to-unicode.d.ts.map +1 -0
  270. package/dist/ui/utils/latex-to-unicode.js +538 -0
  271. package/dist/ui/utils/latex-to-unicode.js.map +1 -0
  272. package/dist/ui/utils/markdown-renderer.d.ts +20 -0
  273. package/dist/ui/utils/markdown-renderer.d.ts.map +1 -0
  274. package/dist/ui/utils/markdown-renderer.js +327 -0
  275. package/dist/ui/utils/markdown-renderer.js.map +1 -0
  276. package/dist/ui/utils/markdown-table.d.ts +9 -0
  277. package/dist/ui/utils/markdown-table.d.ts.map +1 -0
  278. package/dist/ui/utils/markdown-table.js +95 -0
  279. package/dist/ui/utils/markdown-table.js.map +1 -0
  280. package/dist/ui/utils/text-utils.d.ts +8 -0
  281. package/dist/ui/utils/text-utils.d.ts.map +1 -0
  282. package/dist/ui/utils/text-utils.js +16 -0
  283. package/dist/ui/utils/text-utils.js.map +1 -0
  284. package/dist/ui/utils/token-to-ansi.js +19 -9
  285. package/dist/ui/utils/token-to-ansi.js.map +1 -1
  286. package/dist/ui/utils/user-message-display.d.ts +7 -0
  287. package/dist/ui/utils/user-message-display.d.ts.map +1 -0
  288. package/dist/ui/utils/user-message-display.js +26 -0
  289. package/dist/ui/utils/user-message-display.js.map +1 -0
  290. package/dist/utils/format.js +0 -9
  291. package/dist/utils/format.js.map +1 -1
  292. package/package.json +9 -4
  293. package/dist/tools/enter-plan.d.ts +0 -8
  294. package/dist/tools/enter-plan.d.ts.map +0 -1
  295. package/dist/tools/enter-plan.js +0 -30
  296. package/dist/tools/enter-plan.js.map +0 -1
  297. package/dist/tools/exit-plan.d.ts +0 -8
  298. package/dist/tools/exit-plan.d.ts.map +0 -1
  299. package/dist/tools/exit-plan.js +0 -36
  300. package/dist/tools/exit-plan.js.map +0 -1
  301. package/dist/tools/tasks.d.ts +0 -16
  302. package/dist/tools/tasks.d.ts.map +0 -1
  303. package/dist/tools/tasks.js +0 -133
  304. package/dist/tools/tasks.js.map +0 -1
  305. package/dist/ui/components/EyesOverlay.d.ts +0 -10
  306. package/dist/ui/components/EyesOverlay.d.ts.map +0 -1
  307. package/dist/ui/components/EyesOverlay.js +0 -220
  308. package/dist/ui/components/EyesOverlay.js.map +0 -1
  309. package/dist/ui/components/TaskOverlay.d.ts +0 -10
  310. package/dist/ui/components/TaskOverlay.d.ts.map +0 -1
  311. package/dist/ui/components/TaskOverlay.js +0 -267
  312. package/dist/ui/components/TaskOverlay.js.map +0 -1
@@ -2,60 +2,66 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { useEffect, useMemo, useRef, useState } from "react";
3
3
  import { Text, Box } from "ink";
4
4
  import { useTheme } from "../theme/theme.js";
5
- import { SPINNER_FRAMES, SPINNER_INTERVAL, REDUCED_MOTION_DOT } from "../spinner-frames.js";
6
- import { PLANNING_PHRASES, selectPhrases, shuffleArray } from "../activity-phrases.js";
5
+ import { REDUCED_MOTION_DOT } from "../spinner-frames.js";
7
6
  import { useFocusedAnimation, deriveFrame, useReducedMotion, useTerminalFocus, } from "./AnimationContext.js";
8
- // ── Color pulse cycle ─────────────────────────────────────
9
- const PULSE_COLORS = [
10
- "#60a5fa", // blue
11
- "#818cf8", // indigo
12
- "#a78bfa", // violet
13
- "#818cf8", // indigo (back)
14
- "#60a5fa", // blue (back)
15
- "#38bdf8", // sky
16
- "#60a5fa", // blue (back)
7
+ // ── Gemini spinner style ──────────────────────────────────
8
+ const GEMINI_DOTS_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
9
+ const GEMINI_DOTS_INTERVAL = 80;
10
+ const GEMINI_COLOR_CYCLE_DURATION_MS = 4000;
11
+ const GEMINI_COLOR_CYCLE = [
12
+ "#D7AFFF", // AccentPurple
13
+ "#87AFFF", // AccentBlue
14
+ "#87D7D7", // AccentCyan
15
+ "#D7FFD7", // AccentGreen
16
+ "#FFFFAF", // AccentYellow
17
+ "#FF87AF", // AccentRed
17
18
  ];
18
- const PLAN_PULSE_COLORS = [
19
- "#f59e0b", // amber
20
- "#fbbf24", // amber light
21
- "#f59e0b", // amber
22
- "#d97706", // amber dark
23
- "#f59e0b", // amber
24
- "#fbbf24", // amber light
25
- "#d97706", // amber dark
26
- ];
27
- const PULSE_INTERVAL = 400;
19
+ function interpolateHexChannel(start, end, amount) {
20
+ return Math.round(start + (end - start) * amount);
21
+ }
22
+ function parseHexColor(color) {
23
+ return [
24
+ parseInt(color.slice(1, 3), 16),
25
+ parseInt(color.slice(3, 5), 16),
26
+ parseInt(color.slice(5, 7), 16),
27
+ ];
28
+ }
29
+ function toHexChannel(value) {
30
+ return value.toString(16).padStart(2, "0");
31
+ }
32
+ function getGeminiSpinnerColor(elapsedMs) {
33
+ const progress = ((elapsedMs % GEMINI_COLOR_CYCLE_DURATION_MS) + GEMINI_COLOR_CYCLE_DURATION_MS) %
34
+ GEMINI_COLOR_CYCLE_DURATION_MS;
35
+ const scaled = (progress / GEMINI_COLOR_CYCLE_DURATION_MS) * GEMINI_COLOR_CYCLE.length;
36
+ const startIndex = Math.floor(scaled) % GEMINI_COLOR_CYCLE.length;
37
+ const endIndex = (startIndex + 1) % GEMINI_COLOR_CYCLE.length;
38
+ const amount = scaled - Math.floor(scaled);
39
+ const start = parseHexColor(GEMINI_COLOR_CYCLE[startIndex]);
40
+ const end = parseHexColor(GEMINI_COLOR_CYCLE[endIndex]);
41
+ return `#${toHexChannel(interpolateHexChannel(start[0], end[0], amount))}${toHexChannel(interpolateHexChannel(start[1], end[1], amount))}${toHexChannel(interpolateHexChannel(start[2], end[2], amount))}`;
42
+ }
28
43
  // ── Low-churn liveness ────────────────────────────────────
29
- const LOW_CHURN_INTERVAL = 1000;
30
- const LOW_CHURN_PHRASE_INTERVAL = 10_000;
44
+ const LOW_CHURN_INTERVAL = 80;
31
45
  const LOW_CHURN_COLOR_INTERVAL = 2000;
32
- const HEARTBEAT_DOT_COUNT = 3;
33
- const HEARTBEAT_ACTIVE_INDEXES = [0, 1, 2, 1];
34
- // ── Ellipsis animation ────────────────────────────────────
35
- const ELLIPSIS_FRAMES = ["", ".", "..", "..."];
36
- const ELLIPSIS_INTERVAL = 500;
37
- // ── Phrase rotation ───────────────────────────────────────
38
- const WAITING_PHRASE_INTERVAL = 3000;
39
- const OTHER_PHRASE_INTERVAL = 4000;
40
46
  export function getActivityAccentColors(themeName) {
41
47
  if (themeName.includes("ansi")) {
42
48
  return {
43
- duration: "#55ffff",
49
+ duration: "#aaaaaa",
44
50
  tokens: "#ff55ff",
45
- thinking: "#55ff55",
51
+ thinking: "#55ffff",
46
52
  };
47
53
  }
48
54
  if (themeName.startsWith("light")) {
49
55
  return {
50
- duration: "#2563eb",
51
- tokens: "#c026d3",
52
- thinking: "#16a34a",
56
+ duration: "#6b7280",
57
+ tokens: "#7c3aed",
58
+ thinking: "#0891b2",
53
59
  };
54
60
  }
55
61
  return {
56
- duration: "#38bdf8",
57
- tokens: "#f472b6",
58
- thinking: "#4ade80",
62
+ duration: "#9ca3af",
63
+ tokens: "#a78bfa",
64
+ thinking: "#67e8f9",
59
65
  };
60
66
  }
61
67
  function formatElapsed(ms) {
@@ -95,7 +101,6 @@ function buildStructuredMetaParts(elapsedMs, thinkingMs, isThinking, tokenEstima
95
101
  }
96
102
  // ── Shimmer effect ────────────────────────────────────────
97
103
  const SHIMMER_WIDTH = 3;
98
- const SHIMMER_INTERVAL = 100;
99
104
  export function getThinkingShimmerColor(themeName) {
100
105
  if (themeName.includes("ansi"))
101
106
  return "#55ff55";
@@ -105,7 +110,7 @@ export function getThinkingShimmerColor(themeName) {
105
110
  }
106
111
  const ShimmerText = ({ text, color, shimmerPos, }) => (_jsx(Text, { children: text.split("").map((char, i) => {
107
112
  const isBright = Math.abs(i - shimmerPos) <= SHIMMER_WIDTH;
108
- return (_jsx(Text, { bold: isBright, color: color, dimColor: !isBright, children: char }, i));
113
+ return (_jsx(Text, { color: color, dimColor: !isBright, children: char }, i));
109
114
  }) }));
110
115
  function useLowChurnFrame(enabled) {
111
116
  const [frame, setFrame] = useState(0);
@@ -119,18 +124,12 @@ function useLowChurnFrame(enabled) {
119
124
  }, [enabled]);
120
125
  return enabled ? frame : 0;
121
126
  }
122
- function HeartbeatGlyph({ activeIndex, color }) {
123
- return (_jsxs(Text, { children: [Array.from({ length: HEARTBEAT_DOT_COUNT }, (_, index) => {
124
- const active = index === activeIndex;
125
- return (_jsx(Text, { bold: active, color: color, dimColor: !active, children: active ? "●" : "·" }, index));
126
- }), " "] }));
127
- }
128
127
  function ActivityMetaText({ colors, isThinking, meta, mutedColor, }) {
129
128
  if (!meta.duration && !meta.tokens && !meta.thinking)
130
129
  return null;
131
130
  const hasTokenSeparator = !!meta.duration && !!meta.tokens;
132
131
  const hasThinkingSeparator = !!meta.thinking && (!!meta.duration || !!meta.tokens);
133
- return (_jsxs(Text, { children: [_jsx(Text, { color: mutedColor, children: " (" }), meta.duration && (_jsx(Text, { color: colors.duration, bold: true, children: meta.duration })), hasTokenSeparator && _jsx(Text, { color: mutedColor, children: " · " }), meta.tokens && (_jsx(Text, { color: colors.tokens, bold: true, children: meta.tokens })), hasThinkingSeparator && _jsx(Text, { color: mutedColor, children: " · " }), meta.thinking && (_jsx(Text, { color: isThinking ? colors.thinking : mutedColor, bold: isThinking, children: meta.thinking })), _jsx(Text, { color: mutedColor, children: ")" })] }));
132
+ return (_jsxs(Text, { children: [_jsx(Text, { color: mutedColor, children: " (" }), meta.duration && _jsx(Text, { color: colors.duration, children: meta.duration }), hasTokenSeparator && _jsx(Text, { color: mutedColor, children: " · " }), meta.tokens && _jsx(Text, { color: colors.tokens, children: meta.tokens }), hasThinkingSeparator && _jsx(Text, { color: mutedColor, children: " · " }), meta.thinking && (_jsx(Text, { color: isThinking ? colors.thinking : mutedColor, children: meta.thinking })), _jsx(Text, { color: mutedColor, children: ")" })] }));
134
133
  }
135
134
  const RETRY_REASON_LABELS = {
136
135
  overloaded: "Provider overloaded",
@@ -140,7 +139,7 @@ const RETRY_REASON_LABELS = {
140
139
  stream_stall: "Provider stream stalled",
141
140
  overflow_compact: "Context overflow — compacting",
142
141
  };
143
- export function ActivityIndicator({ phase, elapsedMs: elapsedMsProp, runStartRef, thinkingMs, isThinking, thinkingEnabled = false, tokenEstimate, charCountRef: charCountRefProp, realTokensAccumRef: realTokensAccumRefProp, userMessage = "", activeToolNames = [], planMode, retryInfo, planDone = 0, planTotal = 0, phrases: phrasesByPhase, pulseColors: pulseColorsOverride, staticDisplay = false, }) {
142
+ export function ActivityIndicator({ phase, elapsedMs: elapsedMsProp, runStartRef, thinkingMs, isThinking, tokenEstimate, charCountRef: charCountRefProp, realTokensAccumRef: realTokensAccumRefProp, retryInfo, planDone = 0, planTotal = 0, pulseColors: pulseColorsOverride, staticDisplay = false, }) {
144
143
  const theme = useTheme();
145
144
  const reducedMotion = useReducedMotion();
146
145
  const thinkingShimmerColor = getThinkingShimmerColor(theme.name);
@@ -199,54 +198,24 @@ export function ActivityIndicator({ phase, elapsedMs: elapsedMsProp, runStartRef
199
198
  }
200
199
  const smoothTokenEstimate = displayedTokensRef.current;
201
200
  // Derive all animation frames from the single tick counter.
202
- const spinnerFrame = fullAnimationActive
203
- ? deriveFrame(tick, SPINNER_INTERVAL, SPINNER_FRAMES.length)
201
+ const pulseColors = pulseColorsOverride && pulseColorsOverride.length > 0 ? pulseColorsOverride : null;
202
+ const colorFrame = pulseColors && lowChurnActive
203
+ ? Math.floor((lowChurnFrame * LOW_CHURN_INTERVAL) / LOW_CHURN_COLOR_INTERVAL) %
204
+ pulseColors.length
204
205
  : 0;
205
- const pulseColors = planMode || !pulseColorsOverride || pulseColorsOverride.length === 0
206
- ? planMode
207
- ? PLAN_PULSE_COLORS
208
- : PULSE_COLORS
209
- : pulseColorsOverride;
210
- const colorFrame = fullAnimationActive
211
- ? deriveFrame(tick, PULSE_INTERVAL, pulseColors.length)
212
- : lowChurnActive
213
- ? Math.floor((lowChurnFrame * LOW_CHURN_INTERVAL) / LOW_CHURN_COLOR_INTERVAL) %
214
- pulseColors.length
215
- : 0;
216
- const ellipsisFrame = fullAnimationActive
217
- ? deriveFrame(tick, ELLIPSIS_INTERVAL, ELLIPSIS_FRAMES.length)
206
+ const geminiElapsedMs = fullAnimationActive
207
+ ? tick * 30
218
208
  : lowChurnActive
219
- ? lowChurnFrame % ELLIPSIS_FRAMES.length
209
+ ? lowChurnFrame * LOW_CHURN_INTERVAL
220
210
  : 0;
221
- const heartbeatFrame = lowChurnActive ? lowChurnFrame % HEARTBEAT_ACTIVE_INDEXES.length : 0;
222
- // Phrase rotation pick phrases based on phase + user message + active tools, shuffle, rotate
223
- const sortedActiveToolNames = [...activeToolNames].sort();
224
- const toolNamesKey = sortedActiveToolNames.join(",");
225
- const overridePhrases = phrasesByPhase?.[phase];
226
- const phrases = useMemo(() => shuffleArray(overridePhrases && overridePhrases.length > 0
227
- ? overridePhrases
228
- : planMode && phase === "waiting"
229
- ? PLANNING_PHRASES
230
- : selectPhrases(phase, userMessage, activeToolNames, thinkingEnabled)), [phase, userMessage, toolNamesKey, planMode, overridePhrases, thinkingEnabled]);
231
- const phraseInterval = lowChurnActive
232
- ? LOW_CHURN_PHRASE_INTERVAL
233
- : phase === "waiting"
234
- ? WAITING_PHRASE_INTERVAL
235
- : OTHER_PHRASE_INTERVAL;
236
- const phraseIndex = fullAnimationActive
237
- ? Math.floor((tick * SHIMMER_INTERVAL) / phraseInterval) % phrases.length
211
+ const spinnerColor = pulseColors
212
+ ? (pulseColors[colorFrame] ?? pulseColors[0] ?? theme.spinnerColor)
213
+ : getGeminiSpinnerColor(geminiElapsedMs);
214
+ const geminiSpinnerFrame = fullAnimationActive
215
+ ? deriveFrame(tick, GEMINI_DOTS_INTERVAL, GEMINI_DOTS_FRAMES.length)
238
216
  : lowChurnActive
239
- ? Math.floor((lowChurnFrame * LOW_CHURN_INTERVAL) / phraseInterval) % phrases.length
217
+ ? lowChurnFrame % GEMINI_DOTS_FRAMES.length
240
218
  : 0;
241
- const spinnerColor = pulseColors[colorFrame] ?? pulseColors[0] ?? theme.spinnerColor;
242
- const heartbeatIndex = HEARTBEAT_ACTIVE_INDEXES[heartbeatFrame] ?? HEARTBEAT_ACTIVE_INDEXES[0];
243
- const phrase = phrases[phraseIndex] ?? phrases[0];
244
- const ellipsis = ELLIPSIS_FRAMES[ellipsisFrame];
245
- // Shimmer — derive position from tick, wrapping across phrase length
246
- const shimmerCycle = phrase.length + SHIMMER_WIDTH * 2;
247
- const shimmerPos = fullAnimationActive ? (tick % shimmerCycle) - SHIMMER_WIDTH : -SHIMMER_WIDTH;
248
- // Pad ellipsis to prevent text from shifting
249
- const paddedEllipsis = fullAnimationActive || lowChurnActive ? ellipsis + " ".repeat(3 - ellipsis.length) : "...";
250
219
  const structuredMeta = buildStructuredMetaParts(elapsedMs, thinkingMs, isThinking, smoothTokenEstimate);
251
220
  const legacyMeta = buildMetaParts(elapsedMs, thinkingMs, isThinking, smoothTokenEstimate);
252
221
  const thinkingShimmerCycle = Math.max(1, legacyMeta.thinking.length + SHIMMER_WIDTH * 2);
@@ -266,8 +235,8 @@ export function ActivityIndicator({ phase, elapsedMs: elapsedMsProp, runStartRef
266
235
  const retryLabel = RETRY_REASON_LABELS[retryInfo.reason];
267
236
  const retryColor = "#f59e0b"; // amber
268
237
  const delaySec = retryInfo.delayMs > 0 ? ` waiting ${Math.round(retryInfo.delayMs / 1000)}s` : "";
269
- return (_jsxs(Box, { children: [lowChurnActive ? (_jsx(HeartbeatGlyph, { activeIndex: heartbeatIndex, color: retryColor })) : (_jsxs(Text, { color: retryColor, bold: true, children: [reducedMotion ? REDUCED_MOTION_DOT : SPINNER_FRAMES[spinnerFrame], " "] })), _jsxs(Text, { color: retryColor, children: [retryLabel, " \u2014 retrying (", retryInfo.attempt, "/", retryInfo.maxAttempts, ")"] }), _jsx(Text, { color: theme.textDim, children: delaySec }), _jsx(ActivityMetaText, { colors: accentColors, isThinking: isThinking, meta: { duration: formatElapsed(elapsedMs), tokens: "", thinking: "" }, mutedColor: theme.textDim })] }));
238
+ return (_jsxs(Box, { children: [_jsxs(Text, { color: retryColor, children: [reducedMotion ? REDUCED_MOTION_DOT : GEMINI_DOTS_FRAMES[geminiSpinnerFrame], " "] }), _jsxs(Text, { color: retryColor, children: [retryLabel, " \u2014 retrying (", retryInfo.attempt, "/", retryInfo.maxAttempts, ")"] }), _jsx(Text, { color: theme.textDim, children: delaySec }), _jsx(ActivityMetaText, { colors: accentColors, isThinking: isThinking, meta: { duration: formatElapsed(elapsedMs), tokens: "", thinking: "" }, mutedColor: theme.textDim })] }));
270
239
  }
271
- return (_jsxs(Box, { children: [lowChurnActive ? (_jsx(HeartbeatGlyph, { activeIndex: heartbeatIndex, color: spinnerColor })) : (_jsxs(Text, { color: spinnerColor, bold: true, children: [reducedMotion ? REDUCED_MOTION_DOT : SPINNER_FRAMES[spinnerFrame], " "] })), fullAnimationActive ? (_jsx(ShimmerText, { text: phrase, color: spinnerColor, shimmerPos: shimmerPos })) : (_jsx(Text, { color: spinnerColor, bold: canAnimate && (fullAnimationActive || lowChurnActive), children: phrase })), _jsx(Text, { color: theme.textDim, children: reducedMotion ? "..." : paddedEllipsis }), fullAnimationActive && isThinking && legacyMeta.thinking ? (_jsxs(Text, { children: [_jsx(Text, { color: theme.textDim, children: " (" }), legacyMeta.prefix && _jsx(Text, { color: theme.textDim, children: legacyMeta.prefix }), legacyMeta.prefix && legacyMeta.thinking ? (_jsx(Text, { color: theme.textDim, children: " · " })) : null, _jsx(ShimmerText, { text: legacyMeta.thinking, color: thinkingShimmerColor, shimmerPos: thinkingShimmerPos }), _jsx(Text, { color: theme.textDim, children: ")" })] })) : (_jsx(ActivityMetaText, { colors: accentColors, isThinking: isThinking, meta: structuredMeta, mutedColor: theme.textDim })), planBar && (_jsxs(Text, { children: [" ", _jsx(Text, { color: planDone === planTotal ? theme.success : theme.planPrimary, children: planBar }), _jsxs(Text, { color: theme.textDim, children: [" ", planDone, "/", planTotal] })] }))] }));
240
+ return (_jsxs(Box, { children: [_jsxs(Text, { color: spinnerColor, children: [reducedMotion ? REDUCED_MOTION_DOT : GEMINI_DOTS_FRAMES[geminiSpinnerFrame], " "] }), _jsx(Text, { color: theme.text, italic: true, wrap: "truncate-end", children: "Working..." }), fullAnimationActive && isThinking && legacyMeta.thinking ? (_jsxs(Text, { children: [_jsx(Text, { color: theme.textDim, children: " (" }), legacyMeta.prefix && _jsx(Text, { color: theme.textDim, children: legacyMeta.prefix }), legacyMeta.prefix && legacyMeta.thinking ? (_jsx(Text, { color: theme.textDim, children: " · " })) : null, _jsx(ShimmerText, { text: legacyMeta.thinking, color: thinkingShimmerColor, shimmerPos: thinkingShimmerPos }), _jsx(Text, { color: theme.textDim, children: ")" })] })) : (_jsx(ActivityMetaText, { colors: accentColors, isThinking: isThinking, meta: structuredMeta, mutedColor: theme.textDim })), planBar && (_jsxs(Text, { children: [" ", _jsx(Text, { color: planDone === planTotal ? theme.success : theme.planPrimary, children: planBar }), _jsxs(Text, { color: theme.textDim, children: [" ", planDone, "/", planTotal] })] }))] }));
272
241
  }
273
242
  //# sourceMappingURL=ActivityIndicator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityIndicator.js","sourceRoot":"","sources":["../../../src/ui/components/ActivityIndicator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActivityIndicator.js","sourceRoot":"","sources":["../../../src/ui/components/ActivityIndicator.tsx"],"names":[],"mappings":"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"}
@@ -4,8 +4,12 @@ interface AssistantMessageProps {
4
4
  thinking?: string;
5
5
  thinkingMs?: number;
6
6
  showThinking?: boolean;
7
- planMode?: boolean;
7
+ streaming?: boolean;
8
+ renderMarkdown?: boolean;
9
+ availableTerminalHeight?: number;
10
+ marginTop?: number;
11
+ continuation?: boolean;
8
12
  }
9
- export declare const AssistantMessage: React.MemoExoticComponent<({ text, thinking, thinkingMs, showThinking, planMode, }: AssistantMessageProps) => import("react/jsx-runtime").JSX.Element | null>;
13
+ export declare const AssistantMessage: React.MemoExoticComponent<({ text, thinking, thinkingMs, showThinking, streaming, renderMarkdown, availableTerminalHeight, marginTop, continuation, }: AssistantMessageProps) => import("react/jsx-runtime").JSX.Element | null>;
10
14
  export {};
11
15
  //# sourceMappingURL=AssistantMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/AssistantMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,eAAO,MAAM,gBAAgB,sFAM1B,qBAAqB,oDA4BtB,CAAC"}
1
+ {"version":3,"file":"AssistantMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/AssistantMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAOD,eAAO,MAAM,gBAAgB,yJAU1B,qBAAqB,oDAkDtB,CAAC"}
@@ -6,12 +6,14 @@ import { Markdown } from "./Markdown.js";
6
6
  import { ThinkingBlock } from "./ThinkingBlock.js";
7
7
  import { useTerminalSize } from "../hooks/useTerminalSize.js";
8
8
  import { BLACK_CIRCLE } from "../constants/figures.js";
9
- // BLACK_CIRCLE + " " = 2 chars
9
+ const RESPONSE_LEFT_PADDING = 1;
10
+ const RESPONSE_RIGHT_GUARD = 1;
11
+ // BLACK_CIRCLE + " " = 2 chars.
10
12
  const PREFIX_WIDTH = 2;
11
- export const AssistantMessage = React.memo(function AssistantMessage({ text, thinking, thinkingMs, showThinking = false, planMode, }) {
13
+ export const AssistantMessage = React.memo(function AssistantMessage({ text, thinking, thinkingMs, showThinking = false, streaming = false, renderMarkdown = true, availableTerminalHeight, marginTop = 0, continuation = false, }) {
12
14
  const theme = useTheme();
13
15
  const { columns } = useTerminalSize();
14
- const contentWidth = Math.max(10, columns - PREFIX_WIDTH);
16
+ const contentWidth = Math.max(10, columns - RESPONSE_LEFT_PADDING - PREFIX_WIDTH - RESPONSE_RIGHT_GUARD);
15
17
  // Trim because stripDoneMarkers leaves a single space when an assistant
16
18
  // turn was JUST a [DONE:N] marker — we don't want a lone "⏺" rendered
17
19
  // for that. Skip the entire block (incl. the marginTop spacer) when
@@ -20,6 +22,9 @@ export const AssistantMessage = React.memo(function AssistantMessage({ text, thi
20
22
  const hasThinking = showThinking && !!thinking;
21
23
  if (!trimmedText && !hasThinking)
22
24
  return null;
23
- return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [hasThinking && _jsx(ThinkingBlock, { text: thinking, durationMs: thinkingMs }), trimmedText && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: PREFIX_WIDTH, flexShrink: 0, children: _jsx(Text, { color: planMode ? theme.planPrimary : theme.primary, children: BLACK_CIRCLE + " " }) }), _jsx(Box, { flexDirection: "column", flexGrow: 1, width: contentWidth, children: _jsx(Markdown, { children: trimmedText }) })] }))] }));
25
+ const constrainedHeight = availableTerminalHeight
26
+ ? Math.max(1, availableTerminalHeight - marginTop)
27
+ : undefined;
28
+ return (_jsxs(Box, { flexDirection: "column", marginTop: marginTop, maxHeight: constrainedHeight, overflowY: constrainedHeight ? "hidden" : undefined, children: [hasThinking && (_jsx(ThinkingBlock, { text: thinking, streaming: streaming, durationMs: thinkingMs })), trimmedText && (_jsxs(Box, { flexDirection: "row", paddingLeft: RESPONSE_LEFT_PADDING, flexShrink: 1, children: [_jsx(Box, { width: PREFIX_WIDTH, flexShrink: 0, children: _jsx(Text, { color: theme.primary, children: continuation ? " " : BLACK_CIRCLE + " " }) }), _jsx(Box, { flexDirection: "column", width: contentWidth, flexShrink: 1, children: _jsx(Markdown, { width: contentWidth, compact: true, renderMarkdown: renderMarkdown, isPending: streaming, availableTerminalHeight: availableTerminalHeight, children: trimmedText }) })] }))] }));
24
29
  });
25
30
  //# sourceMappingURL=AssistantMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessage.js","sourceRoot":"","sources":["../../../src/ui/components/AssistantMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAUvD,+BAA+B;AAC/B,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,EACnE,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,YAAY,GAAG,KAAK,EACpB,QAAQ,GACc;IACtB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;IAE1D,wEAAwE;IACxE,sEAAsE;IACtE,oEAAoE;IACpE,mCAAmC;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACrC,WAAW,IAAI,KAAC,aAAa,IAAC,IAAI,EAAE,QAAS,EAAE,UAAU,EAAE,UAAU,GAAI,EACzE,WAAW,IAAI,CACd,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,GAAG,IAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,YACrC,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAG,YAAY,GAAG,GAAG,GAAQ,GAClF,EACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,YAC1D,KAAC,QAAQ,cAAE,WAAW,GAAY,GAC9B,IACF,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"AssistantMessage.js","sourceRoot":"","sources":["../../../src/ui/components/AssistantMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAcvD,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,gCAAgC;AAChC,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,EACnE,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,YAAY,GAAG,KAAK,EACpB,SAAS,GAAG,KAAK,EACjB,cAAc,GAAG,IAAI,EACrB,uBAAuB,EACvB,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,KAAK,GACE;IACtB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,EAAE,EACF,OAAO,GAAG,qBAAqB,GAAG,YAAY,GAAG,oBAAoB,CACtE,CAAC;IAEF,wEAAwE;IACxE,sEAAsE;IACtE,oEAAoE;IACpE,mCAAmC;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC/C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,iBAAiB,GAAG,uBAAuB;QAC/C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,aAElD,WAAW,IAAI,CACd,KAAC,aAAa,IAAC,IAAI,EAAE,QAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,GAAI,CACjF,EACA,WAAW,IAAI,CACd,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,aACxE,KAAC,GAAG,IAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,YACrC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,YAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,GAAQ,GACzE,EACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,YAC5D,KAAC,QAAQ,IACP,KAAK,EAAE,YAAY,EACnB,OAAO,QACP,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,uBAAuB,YAE/C,WAAW,GACH,GACP,IACF,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AssistantMessage.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantMessage.test.d.ts","sourceRoot":"","sources":["../../../src/ui/components/AssistantMessage.test.tsx"],"names":[],"mappings":""}