@ranker/raxflow 0.2.1 → 0.2.2

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 (352) hide show
  1. package/dist/tui/components/LogsPanel.d.ts.map +1 -1
  2. package/dist/tui/components/LogsPanel.js +4 -3
  3. package/dist/tui/components/LogsPanel.js.map +1 -1
  4. package/dist/tui/components/MemoryPanel.d.ts.map +1 -1
  5. package/dist/tui/components/MemoryPanel.js +2 -2
  6. package/dist/tui/components/MemoryPanel.js.map +1 -1
  7. package/dist/tui/components/MetricsPanel.d.ts.map +1 -1
  8. package/dist/tui/components/MetricsPanel.js +2 -2
  9. package/dist/tui/components/MetricsPanel.js.map +1 -1
  10. package/dist/tui/components/StatusPanel.d.ts.map +1 -1
  11. package/dist/tui/components/StatusPanel.js +4 -3
  12. package/dist/tui/components/StatusPanel.js.map +1 -1
  13. package/package.json +1 -1
  14. package/src/setup/components/ProviderSelector.tsx +7 -6
  15. package/src/tui/App.tsx +15 -9
  16. package/src/tui/components/ChatPanel.tsx +7 -4
  17. package/src/tui/components/DAGPanel.tsx +11 -7
  18. package/src/tui/components/LogsPanel.tsx +6 -3
  19. package/src/tui/components/MemoryPanel.tsx +10 -7
  20. package/src/tui/components/MetricsPanel.tsx +8 -5
  21. package/src/tui/components/StatusPanel.tsx +12 -9
  22. package/dist/benchmark.d.ts.map +0 -1
  23. package/dist/benchmark.js +0 -123
  24. package/dist/benchmark.js.map +0 -1
  25. package/dist/bin.d.ts.map +0 -1
  26. package/dist/bin.js +0 -141
  27. package/dist/bin.js.map +0 -1
  28. package/dist/bootstrap.d.ts.map +0 -1
  29. package/dist/bootstrap.js +0 -22
  30. package/dist/bootstrap.js.map +0 -1
  31. package/dist/bridge-adapter-templates.d.ts.map +0 -1
  32. package/dist/bridge-adapter-templates.js +0 -185
  33. package/dist/bridge-adapter-templates.js.map +0 -1
  34. package/dist/bridge-test.d.ts.map +0 -1
  35. package/dist/bridge-test.js +0 -89
  36. package/dist/bridge-test.js.map +0 -1
  37. package/dist/dashboard.d.ts.map +0 -1
  38. package/dist/dashboard.js +0 -49
  39. package/dist/dashboard.js.map +0 -1
  40. package/dist/doctor.d.ts.map +0 -1
  41. package/dist/doctor.js +0 -70
  42. package/dist/doctor.js.map +0 -1
  43. package/dist/evolve.d.ts.map +0 -1
  44. package/dist/evolve.js +0 -48
  45. package/dist/evolve.js.map +0 -1
  46. package/dist/host-init-templates.d.ts.map +0 -1
  47. package/dist/host-init-templates.js +0 -119
  48. package/dist/host-init-templates.js.map +0 -1
  49. package/dist/hub/__tests__/commands.test.d.ts.map +0 -1
  50. package/dist/hub/__tests__/commands.test.js +0 -72
  51. package/dist/hub/__tests__/commands.test.js.map +0 -1
  52. package/dist/hub/__tests__/history.test.d.ts.map +0 -1
  53. package/dist/hub/__tests__/history.test.js +0 -119
  54. package/dist/hub/__tests__/history.test.js.map +0 -1
  55. package/dist/hub/__tests__/parser.test.d.ts.map +0 -1
  56. package/dist/hub/__tests__/parser.test.js +0 -92
  57. package/dist/hub/__tests__/parser.test.js.map +0 -1
  58. package/dist/hub/chat/ChatApp.d.ts +0 -2
  59. package/dist/hub/chat/ChatApp.d.ts.map +0 -1
  60. package/dist/hub/chat/ChatApp.js +0 -146
  61. package/dist/hub/chat/ChatApp.js.map +0 -1
  62. package/dist/hub/chat/components/ChatInput.d.ts +0 -9
  63. package/dist/hub/chat/components/ChatInput.d.ts.map +0 -1
  64. package/dist/hub/chat/components/ChatInput.js +0 -19
  65. package/dist/hub/chat/components/ChatInput.js.map +0 -1
  66. package/dist/hub/chat/components/MessageList.d.ts +0 -7
  67. package/dist/hub/chat/components/MessageList.d.ts.map +0 -1
  68. package/dist/hub/chat/components/MessageList.js +0 -6
  69. package/dist/hub/chat/components/MessageList.js.map +0 -1
  70. package/dist/hub/chat/context.d.ts.map +0 -1
  71. package/dist/hub/chat/context.js +0 -42
  72. package/dist/hub/chat/context.js.map +0 -1
  73. package/dist/hub/chat/hooks/useChatHistory.d.ts +0 -7
  74. package/dist/hub/chat/hooks/useChatHistory.d.ts.map +0 -1
  75. package/dist/hub/chat/hooks/useChatHistory.js +0 -31
  76. package/dist/hub/chat/hooks/useChatHistory.js.map +0 -1
  77. package/dist/hub/chat/index.d.ts.map +0 -1
  78. package/dist/hub/chat/index.js +0 -7
  79. package/dist/hub/chat/index.js.map +0 -1
  80. package/dist/hub/chat/intent-parser.d.ts.map +0 -1
  81. package/dist/hub/chat/intent-parser.js +0 -48
  82. package/dist/hub/chat/intent-parser.js.map +0 -1
  83. package/dist/hub/chat/types.d.ts.map +0 -1
  84. package/dist/hub/chat/types.js +0 -2
  85. package/dist/hub/chat/types.js.map +0 -1
  86. package/dist/hub/commands/agents.d.ts.map +0 -1
  87. package/dist/hub/commands/agents.js +0 -36
  88. package/dist/hub/commands/agents.js.map +0 -1
  89. package/dist/hub/commands/index.d.ts.map +0 -1
  90. package/dist/hub/commands/index.js +0 -123
  91. package/dist/hub/commands/index.js.map +0 -1
  92. package/dist/hub/commands/logs.d.ts.map +0 -1
  93. package/dist/hub/commands/logs.js +0 -53
  94. package/dist/hub/commands/logs.js.map +0 -1
  95. package/dist/hub/commands/memory.d.ts.map +0 -1
  96. package/dist/hub/commands/memory.js +0 -40
  97. package/dist/hub/commands/memory.js.map +0 -1
  98. package/dist/hub/commands/metrics.d.ts.map +0 -1
  99. package/dist/hub/commands/metrics.js +0 -35
  100. package/dist/hub/commands/metrics.js.map +0 -1
  101. package/dist/hub/commands/providers.d.ts.map +0 -1
  102. package/dist/hub/commands/providers.js +0 -26
  103. package/dist/hub/commands/providers.js.map +0 -1
  104. package/dist/hub/commands/run.d.ts.map +0 -1
  105. package/dist/hub/commands/run.js +0 -31
  106. package/dist/hub/commands/run.js.map +0 -1
  107. package/dist/hub/commands/status.d.ts.map +0 -1
  108. package/dist/hub/commands/status.js +0 -61
  109. package/dist/hub/commands/status.js.map +0 -1
  110. package/dist/hub/commands/workflows.d.ts.map +0 -1
  111. package/dist/hub/commands/workflows.js +0 -45
  112. package/dist/hub/commands/workflows.js.map +0 -1
  113. package/dist/hub/config-loader.d.ts.map +0 -1
  114. package/dist/hub/config-loader.js +0 -27
  115. package/dist/hub/config-loader.js.map +0 -1
  116. package/dist/hub/event-listener.d.ts +0 -6
  117. package/dist/hub/event-listener.d.ts.map +0 -1
  118. package/dist/hub/event-listener.js +0 -12
  119. package/dist/hub/event-listener.js.map +0 -1
  120. package/dist/hub/history.d.ts.map +0 -1
  121. package/dist/hub/history.js +0 -59
  122. package/dist/hub/history.js.map +0 -1
  123. package/dist/hub/index.d.ts.map +0 -1
  124. package/dist/hub/index.js +0 -114
  125. package/dist/hub/index.js.map +0 -1
  126. package/dist/hub/parser.d.ts.map +0 -1
  127. package/dist/hub/parser.js +0 -98
  128. package/dist/hub/parser.js.map +0 -1
  129. package/dist/hub/styles/borders.d.ts.map +0 -1
  130. package/dist/hub/styles/borders.js +0 -64
  131. package/dist/hub/styles/borders.js.map +0 -1
  132. package/dist/hub/styles/colors.d.ts.map +0 -1
  133. package/dist/hub/styles/colors.js +0 -115
  134. package/dist/hub/styles/colors.js.map +0 -1
  135. package/dist/hub/styles/typography.d.ts.map +0 -1
  136. package/dist/hub/styles/typography.js +0 -60
  137. package/dist/hub/styles/typography.js.map +0 -1
  138. package/dist/hub/tui/App.d.ts +0 -2
  139. package/dist/hub/tui/App.d.ts.map +0 -1
  140. package/dist/hub/tui/App.js +0 -53
  141. package/dist/hub/tui/App.js.map +0 -1
  142. package/dist/hub/tui/components/AgentQueue.d.ts +0 -6
  143. package/dist/hub/tui/components/AgentQueue.d.ts.map +0 -1
  144. package/dist/hub/tui/components/AgentQueue.js +0 -20
  145. package/dist/hub/tui/components/AgentQueue.js.map +0 -1
  146. package/dist/hub/tui/components/DAGPanel.d.ts +0 -16
  147. package/dist/hub/tui/components/DAGPanel.d.ts.map +0 -1
  148. package/dist/hub/tui/components/DAGPanel.js +0 -51
  149. package/dist/hub/tui/components/DAGPanel.js.map +0 -1
  150. package/dist/hub/tui/components/Header.d.ts +0 -7
  151. package/dist/hub/tui/components/Header.d.ts.map +0 -1
  152. package/dist/hub/tui/components/Header.js +0 -17
  153. package/dist/hub/tui/components/Header.js.map +0 -1
  154. package/dist/hub/tui/components/LogsPanel.d.ts +0 -6
  155. package/dist/hub/tui/components/LogsPanel.d.ts.map +0 -1
  156. package/dist/hub/tui/components/LogsPanel.js +0 -26
  157. package/dist/hub/tui/components/LogsPanel.js.map +0 -1
  158. package/dist/hub/tui/components/StatusBar.d.ts +0 -8
  159. package/dist/hub/tui/components/StatusBar.d.ts.map +0 -1
  160. package/dist/hub/tui/components/StatusBar.js +0 -7
  161. package/dist/hub/tui/components/StatusBar.js.map +0 -1
  162. package/dist/hub/tui/hooks/useEvents.d.ts +0 -2
  163. package/dist/hub/tui/hooks/useEvents.d.ts.map +0 -1
  164. package/dist/hub/tui/hooks/useEvents.js +0 -13
  165. package/dist/hub/tui/hooks/useEvents.js.map +0 -1
  166. package/dist/hub/tui/index.d.ts.map +0 -1
  167. package/dist/hub/tui/index.js +0 -7
  168. package/dist/hub/tui/index.js.map +0 -1
  169. package/dist/hub/tui/types.d.ts.map +0 -1
  170. package/dist/hub/tui/types.js +0 -2
  171. package/dist/hub/tui/types.js.map +0 -1
  172. package/dist/hub/types.d.ts.map +0 -1
  173. package/dist/hub/types.js +0 -2
  174. package/dist/hub/types.js.map +0 -1
  175. package/dist/index.d.ts.map +0 -1
  176. package/dist/index.js +0 -11
  177. package/dist/index.js.map +0 -1
  178. package/dist/init-host.d.ts.map +0 -1
  179. package/dist/init-host.js +0 -232
  180. package/dist/init-host.js.map +0 -1
  181. package/dist/install.d.ts.map +0 -1
  182. package/dist/install.js +0 -99
  183. package/dist/install.js.map +0 -1
  184. package/dist/run.d.ts.map +0 -1
  185. package/dist/run.js +0 -238
  186. package/dist/run.js.map +0 -1
  187. package/dist/setup/components/ApiKeyInput.d.ts +0 -25
  188. package/dist/setup/components/ApiKeyInput.d.ts.map +0 -1
  189. package/dist/setup/components/ApiKeyInput.js +0 -54
  190. package/dist/setup/components/ApiKeyInput.js.map +0 -1
  191. package/dist/setup/components/AsciiBanner.d.ts +0 -22
  192. package/dist/setup/components/AsciiBanner.d.ts.map +0 -1
  193. package/dist/setup/components/AsciiBanner.js +0 -55
  194. package/dist/setup/components/AsciiBanner.js.map +0 -1
  195. package/dist/setup/components/CliDetector.d.ts +0 -17
  196. package/dist/setup/components/CliDetector.d.ts.map +0 -1
  197. package/dist/setup/components/CliDetector.js +0 -79
  198. package/dist/setup/components/CliDetector.js.map +0 -1
  199. package/dist/setup/components/ModeSelector.d.ts +0 -8
  200. package/dist/setup/components/ModeSelector.d.ts.map +0 -1
  201. package/dist/setup/components/ModeSelector.js +0 -76
  202. package/dist/setup/components/ModeSelector.js.map +0 -1
  203. package/dist/setup/components/ProviderSelector.d.ts +0 -18
  204. package/dist/setup/components/ProviderSelector.d.ts.map +0 -1
  205. package/dist/setup/components/ProviderSelector.js +0 -97
  206. package/dist/setup/components/ProviderSelector.js.map +0 -1
  207. package/dist/setup/components/SetupWizard.d.ts +0 -2
  208. package/dist/setup/components/SetupWizard.d.ts.map +0 -1
  209. package/dist/setup/components/SetupWizard.js +0 -212
  210. package/dist/setup/components/SetupWizard.js.map +0 -1
  211. package/dist/setup/components/StepIndicator.d.ts +0 -13
  212. package/dist/setup/components/StepIndicator.d.ts.map +0 -1
  213. package/dist/setup/components/StepIndicator.js +0 -18
  214. package/dist/setup/components/StepIndicator.js.map +0 -1
  215. package/dist/setup/components/SuccessScreen.d.ts +0 -18
  216. package/dist/setup/components/SuccessScreen.d.ts.map +0 -1
  217. package/dist/setup/components/SuccessScreen.js +0 -38
  218. package/dist/setup/components/SuccessScreen.js.map +0 -1
  219. package/dist/setup/index.d.ts +0 -12
  220. package/dist/setup/index.d.ts.map +0 -1
  221. package/dist/setup/index.js +0 -29
  222. package/dist/setup/index.js.map +0 -1
  223. package/dist/setup/utils/cli-detection.d.ts +0 -12
  224. package/dist/setup/utils/cli-detection.d.ts.map +0 -1
  225. package/dist/setup/utils/cli-detection.js +0 -83
  226. package/dist/setup/utils/cli-detection.js.map +0 -1
  227. package/dist/setup/utils/config-writer.d.ts +0 -43
  228. package/dist/setup/utils/config-writer.d.ts.map +0 -1
  229. package/dist/setup/utils/config-writer.js +0 -180
  230. package/dist/setup/utils/config-writer.js.map +0 -1
  231. package/dist/styles.d.ts.map +0 -1
  232. package/dist/styles.js +0 -12
  233. package/dist/styles.js.map +0 -1
  234. package/dist/tui/App.d.ts +0 -3
  235. package/dist/tui/App.d.ts.map +0 -1
  236. package/dist/tui/App.js +0 -131
  237. package/dist/tui/App.js.map +0 -1
  238. package/dist/tui/components/AgentStateIcon.d.ts +0 -18
  239. package/dist/tui/components/AgentStateIcon.d.ts.map +0 -1
  240. package/dist/tui/components/AgentStateIcon.js +0 -57
  241. package/dist/tui/components/AgentStateIcon.js.map +0 -1
  242. package/dist/tui/components/AnimatedBranch.d.ts +0 -39
  243. package/dist/tui/components/AnimatedBranch.d.ts.map +0 -1
  244. package/dist/tui/components/AnimatedBranch.js +0 -64
  245. package/dist/tui/components/AnimatedBranch.js.map +0 -1
  246. package/dist/tui/components/ChatPanel.d.ts +0 -16
  247. package/dist/tui/components/ChatPanel.d.ts.map +0 -1
  248. package/dist/tui/components/ChatPanel.js +0 -50
  249. package/dist/tui/components/ChatPanel.js.map +0 -1
  250. package/dist/tui/components/DAGPanel.d.ts +0 -36
  251. package/dist/tui/components/DAGPanel.d.ts.map +0 -1
  252. package/dist/tui/components/DAGPanel.js +0 -51
  253. package/dist/tui/components/DAGPanel.js.map +0 -1
  254. package/dist/tui/components/ExecutionTimeline.d.ts +0 -34
  255. package/dist/tui/components/ExecutionTimeline.d.ts.map +0 -1
  256. package/dist/tui/components/ExecutionTimeline.js +0 -67
  257. package/dist/tui/components/ExecutionTimeline.js.map +0 -1
  258. package/dist/tui/components/Header.d.ts +0 -12
  259. package/dist/tui/components/Header.d.ts.map +0 -1
  260. package/dist/tui/components/Header.js +0 -32
  261. package/dist/tui/components/Header.js.map +0 -1
  262. package/dist/tui/components/HelpOverlay.d.ts +0 -7
  263. package/dist/tui/components/HelpOverlay.d.ts.map +0 -1
  264. package/dist/tui/components/HelpOverlay.js +0 -60
  265. package/dist/tui/components/HelpOverlay.js.map +0 -1
  266. package/dist/tui/components/InputBar.d.ts +0 -10
  267. package/dist/tui/components/InputBar.d.ts.map +0 -1
  268. package/dist/tui/components/InputBar.js +0 -21
  269. package/dist/tui/components/InputBar.js.map +0 -1
  270. package/dist/tui/components/LogsPanel.d.ts +0 -9
  271. package/dist/tui/components/MemoryPanel.d.ts +0 -21
  272. package/dist/tui/components/MetricsPanel.d.ts +0 -18
  273. package/dist/tui/components/StatusPanel.d.ts +0 -23
  274. package/dist/tui/components/TaskTree.d.ts +0 -28
  275. package/dist/tui/components/TaskTree.d.ts.map +0 -1
  276. package/dist/tui/components/TaskTree.js +0 -29
  277. package/dist/tui/components/TaskTree.js.map +0 -1
  278. package/dist/tui/components/animations/ProgressBar.d.ts +0 -39
  279. package/dist/tui/components/animations/ProgressBar.d.ts.map +0 -1
  280. package/dist/tui/components/animations/ProgressBar.js +0 -39
  281. package/dist/tui/components/animations/ProgressBar.js.map +0 -1
  282. package/dist/tui/components/animations/Pulse.d.ts +0 -17
  283. package/dist/tui/components/animations/Pulse.d.ts.map +0 -1
  284. package/dist/tui/components/animations/Pulse.js +0 -47
  285. package/dist/tui/components/animations/Pulse.js.map +0 -1
  286. package/dist/tui/components/animations/Spinner.d.ts +0 -13
  287. package/dist/tui/components/animations/Spinner.d.ts.map +0 -1
  288. package/dist/tui/components/animations/Spinner.js +0 -36
  289. package/dist/tui/components/animations/Spinner.js.map +0 -1
  290. package/dist/tui/components/animations/StatusAnimator.d.ts +0 -27
  291. package/dist/tui/components/animations/StatusAnimator.d.ts.map +0 -1
  292. package/dist/tui/components/animations/StatusAnimator.js +0 -85
  293. package/dist/tui/components/animations/StatusAnimator.js.map +0 -1
  294. package/dist/tui/components/animations/TypingEffect.d.ts +0 -26
  295. package/dist/tui/components/animations/TypingEffect.d.ts.map +0 -1
  296. package/dist/tui/components/animations/TypingEffect.js +0 -59
  297. package/dist/tui/components/animations/TypingEffect.js.map +0 -1
  298. package/dist/tui/components/animations/index.d.ts +0 -8
  299. package/dist/tui/components/animations/index.d.ts.map +0 -1
  300. package/dist/tui/components/animations/index.js +0 -6
  301. package/dist/tui/components/animations/index.js.map +0 -1
  302. package/dist/tui/hooks/useAnimation.d.ts +0 -42
  303. package/dist/tui/hooks/useAnimation.d.ts.map +0 -1
  304. package/dist/tui/hooks/useAnimation.js +0 -212
  305. package/dist/tui/hooks/useAnimation.js.map +0 -1
  306. package/dist/tui/hooks/useAppState.d.ts +0 -65
  307. package/dist/tui/hooks/useAppState.d.ts.map +0 -1
  308. package/dist/tui/hooks/useAppState.js +0 -293
  309. package/dist/tui/hooks/useAppState.js.map +0 -1
  310. package/dist/tui/index.d.ts +0 -3
  311. package/dist/tui/index.d.ts.map +0 -1
  312. package/dist/tui/index.js +0 -8
  313. package/dist/tui/index.js.map +0 -1
  314. package/dist/tui/services/orchestrator.d.ts +0 -16
  315. package/dist/tui/services/orchestrator.d.ts.map +0 -1
  316. package/dist/tui/services/orchestrator.js +0 -152
  317. package/dist/tui/services/orchestrator.js.map +0 -1
  318. package/dist/tui/styles/borders.d.ts +0 -31
  319. package/dist/tui/styles/borders.d.ts.map +0 -1
  320. package/dist/tui/styles/borders.js +0 -47
  321. package/dist/tui/styles/borders.js.map +0 -1
  322. package/dist/tui/styles/colors.d.ts +0 -18
  323. package/dist/tui/styles/colors.d.ts.map +0 -1
  324. package/dist/tui/styles/colors.js +0 -18
  325. package/dist/tui/styles/colors.js.map +0 -1
  326. package/dist/tui/styles/index.d.ts +0 -6
  327. package/dist/tui/styles/index.d.ts.map +0 -1
  328. package/dist/tui/styles/index.js +0 -6
  329. package/dist/tui/styles/index.js.map +0 -1
  330. package/dist/tui/styles/indicators.d.ts +0 -67
  331. package/dist/tui/styles/indicators.d.ts.map +0 -1
  332. package/dist/tui/styles/indicators.js +0 -42
  333. package/dist/tui/styles/indicators.js.map +0 -1
  334. package/dist/tui/styles/layout.d.ts +0 -21
  335. package/dist/tui/styles/layout.d.ts.map +0 -1
  336. package/dist/tui/styles/layout.js +0 -42
  337. package/dist/tui/styles/layout.js.map +0 -1
  338. package/dist/tui/styles/providers.d.ts +0 -77
  339. package/dist/tui/styles/providers.d.ts.map +0 -1
  340. package/dist/tui/styles/providers.js +0 -31
  341. package/dist/tui/styles/providers.js.map +0 -1
  342. package/dist/tui/utils/animation.d.ts +0 -44
  343. package/dist/tui/utils/animation.d.ts.map +0 -1
  344. package/dist/tui/utils/animation.js +0 -107
  345. package/dist/tui/utils/animation.js.map +0 -1
  346. package/dist/vendor-manifests.d.ts.map +0 -1
  347. package/dist/vendor-manifests.js +0 -94
  348. package/dist/vendor-manifests.js.map +0 -1
  349. package/dist/ws-relay.d.ts +0 -12
  350. package/dist/ws-relay.d.ts.map +0 -1
  351. package/dist/ws-relay.js +0 -148
  352. package/dist/ws-relay.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LogsPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAK1E,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAuDD,eAAO,MAAM,SAAS,4CAgEpB,CAAC"}
1
+ {"version":3,"file":"LogsPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAK1E,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuDD,eAAO,MAAM,SAAS,4CAkEpB,CAAC"}
@@ -27,11 +27,12 @@ const LogLine = memo(function LogLine({ log, isNew }) {
27
27
  const paddedTag = useMemo(() => parsed.tag.padEnd(7), [parsed.tag]);
28
28
  return (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: ["[", parsed.time, "]"] }), _jsxs(Text, { color: parsed.color, bold: true, children: [" [", paddedTag, "]"] }), _jsxs(Text, { color: isNew ? tuiColors.textPrimary : tuiColors.textSecondary, children: [" ", parsed.message] })] }));
29
29
  });
30
- export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming = false }) {
30
+ export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming = false, maxHeight }) {
31
31
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
32
32
  const [highlightedIndex, setHighlightedIndex] = useState(null);
33
33
  const timeoutRef = useRef(null);
34
- const displayLogs = useMemo(() => logs.slice(-MAX_DISPLAYED_LOGS), [logs]);
34
+ const maxLogs = maxHeight ? Math.max(3, maxHeight - 4) : MAX_DISPLAYED_LOGS;
35
+ const displayLogs = useMemo(() => logs.slice(-maxLogs), [logs, maxLogs]);
35
36
  useEffect(() => {
36
37
  if (logs.length === 0)
37
38
  return;
@@ -51,6 +52,6 @@ export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming =
51
52
  const isNew = logIndex === highlightedIndex;
52
53
  return _jsx(LogLine, { log: log, isNew: isNew }, `${logIndex}-${index}`);
53
54
  }), [displayLogs, logs.length, highlightedIndex]);
54
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " LOGS_STREAM " }), _jsx(Text, { color: tuiColors.textTertiary, children: "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" }), isStreaming && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.warning, children: " " }), _jsx(Spinner, { type: "dots", color: tuiColors.warning })] }))] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [logElements, logs.length === 0 && (_jsx(Text, { color: tuiColors.textTertiary, children: "No logs. Start a workflow to see logs." })), isStreaming && logs.length === 0 && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Spinner, { type: "dots", color: tuiColors.warning }), _jsx(Text, { color: tuiColors.textTertiary, children: " Waiting for logs..." })] }))] })] }));
55
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, height: maxHeight, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " LOGS_STREAM " }), _jsx(Text, { color: tuiColors.textTertiary, children: "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" }), isStreaming && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.warning, children: " " }), _jsx(Spinner, { type: "dots", color: tuiColors.warning })] }))] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [logElements, logs.length === 0 && (_jsx(Text, { color: tuiColors.textTertiary, children: "No logs. Start a workflow to see logs." })), isStreaming && logs.length === 0 && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Spinner, { type: "dots", color: tuiColors.warning }), _jsx(Text, { color: tuiColors.textTertiary, children: " Waiting for logs..." })] }))] })] }));
55
56
  });
56
57
  //# sourceMappingURL=LogsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LogsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAyCD,eAAO,MAAM,WAAW,8CAkGtB,CAAC"}
1
+ {"version":3,"file":"MemoryPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyCD,eAAO,MAAM,WAAW,8CAoGtB,CAAC"}
@@ -28,7 +28,7 @@ const NodeTypeBadge = memo(function NodeTypeBadge({ type, isActive }) {
28
28
  const color = NODE_TYPE_COLORS[type] || tuiColors.textTertiary;
29
29
  return (_jsxs(Box, { flexDirection: "row", children: [isActive && _jsx(Pulse, { interval: 400, color: color, type: "pulse" }), _jsxs(Text, { color: color, children: ["[", type, "]"] })] }));
30
30
  });
31
- export const MemoryPanel = memo(function MemoryPanel({ nodes, edges, nodeCount = 0, cacheHitRate = 0, isActive = false, tick = 0 }) {
31
+ export const MemoryPanel = memo(function MemoryPanel({ nodes, edges, nodeCount = 0, cacheHitRate = 0, isActive = false, tick = 0, maxHeight }) {
32
32
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
33
33
  const displayNodes = (nodes && nodes.length > 0) ? nodes : DEFAULT_NODES;
34
34
  const displayEdges = (edges && edges.length > 0) ? edges : DEFAULT_EDGES;
@@ -46,6 +46,6 @@ export const MemoryPanel = memo(function MemoryPanel({ nodes, edges, nodeCount =
46
46
  return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: treeChars.branch }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", fromNode?.label || "?"] }), _jsx(Text, { color: tuiColors.primary, children: " \u2500\u2500\u25B6 " }), _jsx(Text, { color: tuiColors.textPrimary, children: toNode?.label || "?" })] }, i));
47
47
  }), [displayEdges, displayNodes]);
48
48
  const mutationCount = useMemo(() => Math.floor(Math.random() * 4) + 1, [tick]);
49
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " QSGM " }), _jsxs(Text, { color: tuiColors.textTertiary, children: ["\u2500\u2500 nodes: ", displayNodeCount, " \u2500\u2500"] }), isActive && _jsx(Pulse, { interval: 500, color: tuiColors.primary, type: "pulse" })] }), _jsx(Box, { flexDirection: "column", children: _jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "QUANTUM_SEMANTIC_GRAPH_MEMORY" }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "GRAPH VISUALIZATION" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: nodeElements })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "CONNECTIONS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: edgeElements })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: tuiColors.textTertiary, children: "\u251C\u2500 STATS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Cache Hit:" }), _jsx(Text, { color: tuiColors.success, children: " " }), _jsx(Pulse, { interval: 800, color: tuiColors.success, type: "breath" }), _jsxs(Text, { color: tuiColors.success, children: [" ", displayCacheHitRate, "%"] }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" \u2502 Mutations: +", mutationCount] })] })] }));
49
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, height: maxHeight, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " QSGM " }), _jsxs(Text, { color: tuiColors.textTertiary, children: ["\u2500\u2500 nodes: ", displayNodeCount, " \u2500\u2500"] }), isActive && _jsx(Pulse, { interval: 500, color: tuiColors.primary, type: "pulse" })] }), _jsx(Box, { flexDirection: "column", flexShrink: 0, children: _jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "QUANTUM_SEMANTIC_GRAPH_MEMORY" }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "GRAPH VISUALIZATION" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: nodeElements })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "CONNECTIONS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: edgeElements })] }), _jsx(Box, { marginTop: 1, flexShrink: 0, children: _jsx(Text, { color: tuiColors.textTertiary, children: "\u251C\u2500 STATS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" }) }), _jsxs(Box, { flexDirection: "row", flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Cache Hit:" }), _jsx(Text, { color: tuiColors.success, children: " " }), _jsx(Pulse, { interval: 800, color: tuiColors.success, type: "breath" }), _jsxs(Text, { color: tuiColors.success, children: [" ", displayCacheHitRate, "%"] }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" \u2502 Mutations: +", mutationCount] })] })] }));
50
50
  });
51
51
  //# sourceMappingURL=MemoryPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAsB9C,MAAM,aAAa,GAAiB;IAClC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;IAC9C,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3C,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;IACzC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;IAC7C,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;CAC7C,CAAC;AAEF,MAAM,aAAa,GAAiB;IAClC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACtB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACtB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACtB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACtB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;CACvB,CAAC;AAEF,MAAM,gBAAgB,GAA2B;IAC/C,MAAM,EAAE,SAAS,CAAC,OAAO;IACzB,IAAI,EAAE,SAAS,CAAC,OAAO;IACvB,IAAI,EAAE,SAAS,CAAC,OAAO;IACvB,IAAI,EAAE,SAAS,CAAC,aAAa;IAC7B,GAAG,EAAE,SAAS,CAAC,KAAK;CACrB,CAAC;AAOF,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAsB;IACtF,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC;IAC/D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACrB,QAAQ,IAAI,KAAC,KAAK,IAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,OAAO,GAAG,EAChE,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,kBAAI,IAAI,SAAS,IAC/B,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,EACnD,KAAK,EACL,KAAK,EACL,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,CAAC,EAChB,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,CAAC,EACS;IACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IAEpE,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IACzE,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IACzE,MAAM,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,MAAM,mBAAmB,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAChC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,GAAG,KAAK,eAAe,CAAC;QAC7C,OAAO,CACL,MAAC,GAAG,IAAe,aAAa,EAAC,KAAK,aACpC,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,aAAG,SAAS,CAAC,QAAQ,UAAU,EAClE,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,GAAI,EAC1D,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,kBAAI,IAAI,CAAC,KAAK,IAAQ,EACvD,CAAC,MAAM,IAAI,CACV,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,oCAAa,CAC5C,KANO,IAAI,CAAC,EAAE,CAOX,CACP,CAAC;IACJ,CAAC,CAAC,EACF,CAAC,YAAY,EAAE,eAAe,CAAC,CAChC,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAChC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,CACL,MAAC,GAAG,IAAS,aAAa,EAAC,KAAK,aAC9B,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,YAAG,SAAS,CAAC,MAAM,GAAQ,EAC/D,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,kBAAI,QAAQ,EAAE,KAAK,IAAI,GAAG,IAAQ,EACpE,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,qCAAc,EAC5C,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,YAAG,MAAM,EAAE,KAAK,IAAI,GAAG,GAAQ,KAJzD,CAAC,CAKL,CACP,CAAC;IACJ,CAAC,CAAC,EACF,CAAC,YAAY,EAAE,YAAY,CAAC,CAC7B,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/E,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,mCAAU,EAC9C,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,6BAAc,EAClD,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,qCAAa,gBAAgB,qBAAW,EAC1E,QAAQ,IAAI,KAAC,KAAK,IAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAC,OAAO,GAAG,IACxE,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,oDAAqC,GAC1E,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,0CAA2B,EACpE,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,YAAY,GACT,IACF,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,kCAAmB,EAC5D,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,YAAY,GACT,IACF,EAEN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,sJAAqC,GACpE,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,2BAAmB,EACvD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,kBAAU,EACxC,KAAC,KAAK,IAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,GAAG,EAChE,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,kBAAI,mBAAmB,SAAS,EAC9D,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,qCAAkB,aAAa,IAAQ,IACtE,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"MemoryPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MetricsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwCD,eAAO,MAAM,YAAY,+CAyFvB,CAAC"}
1
+ {"version":3,"file":"MetricsPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MetricsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwCD,eAAO,MAAM,YAAY,+CA2FvB,CAAC"}
@@ -12,7 +12,7 @@ const AnimatedMetricBar = memo(function AnimatedMetricBar({ value, max, width =
12
12
  const percent = useMemo(() => Math.min((value / max) * 100, 100), [value, max]);
13
13
  return (_jsx(AnimatedProgressBar, { progress: percent, width: width, tick: tick || 0, animated: animated, showPercentage: false }));
14
14
  });
15
- export const MetricsPanel = memo(function MetricsPanel({ metrics, fitness, isActive, tick = 0 }) {
15
+ export const MetricsPanel = memo(function MetricsPanel({ metrics, fitness, isActive, tick = 0, maxHeight }) {
16
16
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
17
17
  const fitnessColor = fitness >= 0.9
18
18
  ? tuiColors.success
@@ -22,6 +22,6 @@ export const MetricsPanel = memo(function MetricsPanel({ metrics, fitness, isAct
22
22
  const showSuccessPulse = metrics.successRate >= 90;
23
23
  const costStr = useMemo(() => metrics.totalCost.toFixed(4), [metrics.totalCost]);
24
24
  const agentElements = useMemo(() => TOP_AGENTS.map((agent, idx) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textPrimary, children: agent.name.padEnd(14) }), _jsx(AnimatedMetricBar, { value: agent.percent, max: 100, width: 8, tick: tick, animated: isActive && idx === 0 }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" ", agent.percent, "%"] })] }, agent.name))), [tick, isActive]);
25
- return (_jsxs(Box, { flexDirection: "column", width: 30, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " PERFORMANCE " }), _jsx(Text, { color: tuiColors.textTertiary, children: "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "METRICS" }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Sessions:" }), _jsxs(Text, { color: tuiColors.textPrimary, bold: true, children: [" ", metrics.sessions] })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Avg Duration:" }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", metrics.avgDuration, "ms"] })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Success Rate:" }), _jsxs(Text, { color: tuiColors.success, children: [" ", metrics.successRate, "%"] }), showSuccessPulse && _jsx(Pulse, { interval: 1000, color: tuiColors.success, type: "breath" })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Cost:" }), _jsxs(Text, { color: tuiColors.warning, children: [" $", costStr] })] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "FITNESS SCORE" }), _jsx(FitnessAnimator, { value: fitness }), _jsx(Box, { flexDirection: "row", children: _jsx(AnimatedMetricBar, { value: fitness, max: 1, width: 12, tick: tick, animated: isActive }) })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "TOP AGENTS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: agentElements })] })] }));
25
+ return (_jsxs(Box, { flexDirection: "column", width: 30, height: maxHeight, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " PERFORMANCE " }), _jsx(Text, { color: tuiColors.textTertiary, children: "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" })] }), _jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "METRICS" }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Sessions:" }), _jsxs(Text, { color: tuiColors.textPrimary, bold: true, children: [" ", metrics.sessions] })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Avg Duration:" }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", metrics.avgDuration, "ms"] })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Success Rate:" }), _jsxs(Text, { color: tuiColors.success, children: [" ", metrics.successRate, "%"] }), showSuccessPulse && _jsx(Pulse, { interval: 1000, color: tuiColors.success, type: "breath" })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Cost:" }), _jsxs(Text, { color: tuiColors.warning, children: [" $", costStr] })] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "FITNESS SCORE" }), _jsx(FitnessAnimator, { value: fitness }), _jsx(Box, { flexDirection: "row", children: _jsx(AnimatedMetricBar, { value: fitness, max: 1, width: 12, tick: tick, animated: isActive }) })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "TOP AGENTS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: agentElements })] })] }));
26
26
  });
27
27
  //# sourceMappingURL=MetricsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MetricsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetricsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MetricsPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA+CD,eAAO,MAAM,WAAW,8CAgEtB,CAAC"}
1
+ {"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+CD,eAAO,MAAM,WAAW,8CAkEtB,CAAC"}
@@ -13,11 +13,12 @@ const ProviderRow = memo(function ProviderRow({ provider, tick }) {
13
13
  const providerInfo = useMemo(() => getProviderTag(provider.name), [provider.name]);
14
14
  return (_jsxs(Box, { flexDirection: "row", children: [isActive ? (_jsx(Pulse, { interval: 800, color: tuiColors.success, type: "breath" })) : (_jsx(Text, { color: tuiColors.textTertiary, children: "\u25CB" })), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", provider.name.padEnd(12)] }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" ", provider.latency > 0 ? `${provider.latency}ms`.padStart(6) : "--".padStart(6)] })] }));
15
15
  });
16
- export const StatusPanel = memo(function StatusPanel({ agents, providers, fitness, currentWorkflow, isActive, tick = 0 }) {
16
+ export const StatusPanel = memo(function StatusPanel({ agents, providers, fitness, currentWorkflow, isActive, tick = 0, maxHeight }) {
17
17
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
18
- const activeAgents = useMemo(() => agents.filter(a => a.status === "running" || a.status === "queued").slice(0, 4), [agents]);
18
+ const maxAgents = maxHeight ? Math.max(2, Math.floor((maxHeight - 12) / 2)) : 4;
19
+ const activeAgents = useMemo(() => agents.filter(a => a.status === "running" || a.status === "queued").slice(0, maxAgents), [agents, maxAgents]);
19
20
  const hasNoActiveAgents = activeAgents.length === 0;
20
21
  const workflowDisplay = useMemo(() => currentWorkflow ? `▶ ${currentWorkflow.slice(0, 20)}...` : "○ None", [currentWorkflow]);
21
- return (_jsxs(Box, { flexDirection: "column", width: 30, borderStyle: "single", borderColor: borderColor, children: [_jsxs(Box, { paddingX: 1, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " SYSTEM_STATUS " }), _jsx(Text, { color: tuiColors.textTertiary, children: "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "ORCHESTRATOR" }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Status:" }), _jsx(Text, { color: tuiColors.success, children: " " }), _jsx(Pulse, { interval: 600, color: tuiColors.success, type: "breath" }), _jsx(Text, { color: tuiColors.success, children: " ACTIVE" })] })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "WORKFLOW" }), _jsx(Text, { color: tuiColors.textPrimary, children: workflowDisplay }), _jsx(FitnessAnimator, { value: fitness })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "ACTIVE AGENTS" }), activeAgents.map((agent) => (_jsx(AgentRow, { agent: agent, tick: tick }, agent.name))), hasNoActiveAgents && (_jsx(Text, { color: tuiColors.textQuaternary, children: " \u25CB All idle" }))] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "PROVIDERS" }), providers.map((provider) => (_jsx(ProviderRow, { provider: provider, tick: tick }, provider.name)))] })] }));
22
+ return (_jsxs(Box, { flexDirection: "column", width: 30, height: maxHeight, borderStyle: "single", borderColor: borderColor, children: [_jsxs(Box, { paddingX: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500" }), _jsx(Text, { color: tuiColors.primary, bold: true, children: " SYSTEM_STATUS " }), _jsx(Text, { color: tuiColors.textTertiary, children: "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "ORCHESTRATOR" }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Status:" }), _jsx(Text, { color: tuiColors.success, children: " " }), _jsx(Pulse, { interval: 600, color: tuiColors.success, type: "breath" }), _jsx(Text, { color: tuiColors.success, children: " ACTIVE" })] })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "WORKFLOW" }), _jsx(Text, { color: tuiColors.textPrimary, children: workflowDisplay }), _jsx(FitnessAnimator, { value: fitness })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "ACTIVE AGENTS" }), activeAgents.map((agent) => (_jsx(AgentRow, { agent: agent, tick: tick }, agent.name))), hasNoActiveAgents && (_jsx(Text, { color: tuiColors.textQuaternary, children: " \u25CB All idle" }))] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "PROVIDERS" }), providers.map((provider) => (_jsx(ProviderRow, { provider: provider, tick: tick }, provider.name)))] })] }));
22
23
  });
23
24
  //# sourceMappingURL=StatusPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusPanel.js","sourceRoot":"","sources":["../../../src/tui/components/StatusPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusPanel.js","sourceRoot":"","sources":["../../../src/tui/components/StatusPanel.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA8B/E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAiB;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACrB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5B,KAAC,cAAc,IAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAE,KAAK,GAAI,CACtD,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,KAAK,YAAG,UAAU,CAAC,IAAI,GAAQ,CACxD,EACD,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,kBAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAQ,EAChF,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,kBAAI,YAAY,CAAC,IAAI,IAAQ,EAChE,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,kBAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAQ,IAChF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAOH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAoB;IAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACrB,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,KAAK,IAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,GAAG,CACjE,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,uBAAU,CAC9C,EACD,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,kBAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAQ,EACtE,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,kBAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAQ,IACxH,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,EACnD,MAAM,EACN,SAAS,EACT,OAAO,EACP,eAAe,EACf,QAAQ,EACR,IAAI,GAAG,CAAC,EACR,SAAS,EACQ;IACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IAEpE,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAChC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EACvF,CAAC,MAAM,EAAE,SAAS,CAAC,CACpB,CAAC;IAEF,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CACnC,eAAe,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EACnE,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAE,WAAW,aACrG,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aAC7B,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,mCAAU,EAC9C,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,sCAAuB,EAC3D,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,mFAAoB,IACnD,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aACpD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,mCAAoB,EAC7D,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,wBAAgB,EACpD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,kBAAU,EACxC,KAAC,KAAK,IAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,GAAG,EAChE,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,wBAAgB,IAC1C,IACF,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aAClE,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,+BAAgB,EACzD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,YAAG,eAAe,GAAQ,EAC5D,KAAC,eAAe,IAAC,KAAK,EAAE,OAAO,GAAI,IAC/B,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,aACtE,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,oCAAqB,EAC7D,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,KAAC,QAAQ,IAAkB,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAApC,KAAK,CAAC,IAAI,CAA8B,CACxD,CAAC,EACD,iBAAiB,IAAI,CACpB,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,cAAc,kCAAqB,CAC3D,IACG,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,aACtE,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,gCAAiB,EACzD,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3B,KAAC,WAAW,IAAqB,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,IAA7C,QAAQ,CAAC,IAAI,CAAoC,CACpE,CAAC,IACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ranker/raxflow",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -76,13 +76,14 @@ export function ProviderSelector({
76
76
  } else if (key.downArrow) {
77
77
  setFocusedIndex((prev) => (prev === PROVIDERS.length - 1 ? 0 : prev + 1));
78
78
  } else if (key.return) {
79
- if (focusedIndex === PROVIDERS.length) {
80
- if (selectedProviders.length > 0) {
81
- onContinue();
82
- }
83
- } else if (focusedIndex === PROVIDERS.length + 1) {
79
+ // If BACK is focused, go back
80
+ if (focusedIndex === PROVIDERS.length + 1) {
84
81
  onBack();
85
- } else {
82
+ } else if (selectedProviders.length > 0) {
83
+ // If at least one provider is selected, ENTER should continue
84
+ onContinue();
85
+ } else if (focusedIndex < PROVIDERS.length) {
86
+ // No providers selected yet: toggle the focused provider
86
87
  onToggle(PROVIDERS[focusedIndex].id);
87
88
  }
88
89
  } else if (input === " ") {
package/src/tui/App.tsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useEffect, useRef, useMemo, useCallback } from "react";
2
- import { Box, Text, useApp, useInput } from "ink";
2
+ import { Box, Text, useApp, useInput, useStdout } from "ink";
3
3
  import { Header } from "./components/Header.js";
4
4
  import { ChatPanel } from "./components/ChatPanel.js";
5
5
  import { StatusPanel } from "./components/StatusPanel.js";
@@ -18,6 +18,7 @@ const TICK_INTERVAL = 200;
18
18
 
19
19
  export const App = React.memo(function App() {
20
20
  const { exit } = useApp();
21
+ const { stdout } = useStdout();
21
22
  const { state, processCommand } = useAppState();
22
23
  const [activePanel, setActivePanel] = useState<ActivePanel>("chat");
23
24
  const [showHelp, setShowHelp] = useState(false);
@@ -25,6 +26,11 @@ export const App = React.memo(function App() {
25
26
  const [viewMode, setViewMode] = useState<"full" | "compact">("full");
26
27
  const intervalRef = useRef<NodeJS.Timeout | null>(null);
27
28
 
29
+ const terminalHeight = stdout?.rows || 24;
30
+ const headerHeight = 5;
31
+ const inputBarHeight = 4;
32
+ const availableHeight = Math.max(8, terminalHeight - headerHeight - inputBarHeight);
33
+
28
34
  useEffect(() => {
29
35
  intervalRef.current = setInterval(() => {
30
36
  setTick((t) => t + 1);
@@ -146,27 +152,27 @@ export const App = React.memo(function App() {
146
152
  }), [handleSubmit, state.suggestions, state.isProcessing, state.projectName]);
147
153
 
148
154
  return (
149
- <Box flexDirection="column" height="100%" width="100%">
155
+ <Box flexDirection="column" height={terminalHeight} width="100%">
150
156
  <Header {...headerProps} />
151
157
 
152
158
  {showHelp ? (
153
159
  <HelpOverlay onDismiss={handleDismissHelp} />
154
160
  ) : (
155
161
  <>
156
- <Box flexGrow={1} flexDirection="row" width="100%">
157
- <ChatPanel {...chatPanelProps} />
158
- <DAGPanel {...dagPanelProps} />
162
+ <Box flexDirection="row" width="100%" height={availableHeight}>
163
+ <ChatPanel {...chatPanelProps} maxHeight={availableHeight} />
164
+ <DAGPanel {...dagPanelProps} maxHeight={availableHeight} />
159
165
  {viewMode === "full" && (
160
166
  <>
161
- <LogsPanel {...logsPanelProps} />
167
+ <LogsPanel {...logsPanelProps} maxHeight={availableHeight} />
162
168
  <Box flexDirection="column">
163
- <MetricsPanel {...metricsPanelProps} />
164
- <MemoryPanel {...memoryPanelProps} />
169
+ <MetricsPanel {...metricsPanelProps} maxHeight={Math.floor(availableHeight / 2)} />
170
+ <MemoryPanel {...memoryPanelProps} maxHeight={Math.floor(availableHeight / 2)} />
165
171
  </Box>
166
172
  </>
167
173
  )}
168
174
  {viewMode === "compact" && (
169
- <StatusPanel {...statusPanelProps} />
175
+ <StatusPanel {...statusPanelProps} maxHeight={availableHeight} />
170
176
  )}
171
177
  </Box>
172
178
  <InputBar {...inputBarProps} />
@@ -15,6 +15,7 @@ interface ChatPanelProps {
15
15
  messages: Message[];
16
16
  isProcessing: boolean;
17
17
  isActive: boolean;
18
+ maxHeight?: number;
18
19
  }
19
20
 
20
21
  const MESSAGE_CONFIG: Record<string, { tag: string; color: string }> = {
@@ -63,14 +64,15 @@ const MessageItem = memo(function MessageItem({ message, animate = false }: Mess
63
64
  );
64
65
  });
65
66
 
66
- export const ChatPanel = memo(function ChatPanel({ messages, isProcessing, isActive }: ChatPanelProps) {
67
+ export const ChatPanel = memo(function ChatPanel({ messages, isProcessing, isActive, maxHeight }: ChatPanelProps) {
67
68
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
68
69
  const [animatingMessageId, setAnimatingMessageId] = useState<string | null>(null);
69
70
  const timeoutRef = React.useRef<NodeJS.Timeout | null>(null);
70
71
 
72
+ const maxMsgs = maxHeight ? Math.max(3, maxHeight - 4) : MAX_DISPLAYED_MESSAGES;
71
73
  const displayMessages = useMemo(() =>
72
- messages.slice(-MAX_DISPLAYED_MESSAGES),
73
- [messages]
74
+ messages.slice(-maxMsgs),
75
+ [messages, maxMsgs]
74
76
  );
75
77
 
76
78
  useEffect(() => {
@@ -106,11 +108,12 @@ export const ChatPanel = memo(function ChatPanel({ messages, isProcessing, isAct
106
108
  <Box
107
109
  flexDirection="column"
108
110
  flexGrow={2}
111
+ height={maxHeight}
109
112
  borderStyle="single"
110
113
  borderColor={borderColor}
111
114
  paddingX={1}
112
115
  >
113
- <Box marginBottom={1}>
116
+ <Box marginBottom={1} flexShrink={0}>
114
117
  <Text color={tuiColors.primary} bold>┌─</Text>
115
118
  <Text color={tuiColors.primary} bold> CHAT </Text>
116
119
  <Text color={tuiColors.textTertiary}>─────────────────────────────────────</Text>
@@ -148,13 +148,16 @@ interface DAGPanelProps {
148
148
  workflowState: WorkflowState;
149
149
  tick: number;
150
150
  isActive: boolean;
151
+ maxHeight?: number;
151
152
  }
152
153
 
153
- export const DAGPanel = memo(function DAGPanel({ workflowState, tick, isActive }: DAGPanelProps) {
154
+ export const DAGPanel = memo(function DAGPanel({ workflowState, tick, isActive, maxHeight }: DAGPanelProps) {
154
155
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
155
156
 
157
+ const visibleLevels = maxHeight ? Math.max(2, Math.floor((maxHeight - 6) / 4)) : workflowState.levels.length;
158
+
156
159
  const levelViews = useMemo(() =>
157
- workflowState.levels.map((level, index) => (
160
+ workflowState.levels.slice(0, visibleLevels).map((level, index) => (
158
161
  <DAGLevelView
159
162
  key={level.name}
160
163
  level={level}
@@ -162,7 +165,7 @@ export const DAGPanel = memo(function DAGPanel({ workflowState, tick, isActive }
162
165
  isActive={index === workflowState.currentLevel}
163
166
  />
164
167
  )),
165
- [workflowState.levels, workflowState.currentLevel, tick]
168
+ [workflowState.levels, workflowState.currentLevel, tick, visibleLevels]
166
169
  );
167
170
 
168
171
  const isAnimating = useMemo(() =>
@@ -174,24 +177,25 @@ export const DAGPanel = memo(function DAGPanel({ workflowState, tick, isActive }
174
177
  <Box
175
178
  flexDirection="column"
176
179
  width={46}
180
+ height={maxHeight}
177
181
  borderStyle="single"
178
182
  borderColor={borderColor}
179
183
  paddingX={1}
180
184
  >
181
- <Box marginBottom={1}>
185
+ <Box marginBottom={1} flexShrink={0}>
182
186
  <Text color={tuiColors.primary} bold>┌─</Text>
183
187
  <Text color={tuiColors.primary} bold> DAG_EXECUTION </Text>
184
188
  <Text color={tuiColors.textTertiary}>──────────────────────</Text>
185
189
  </Box>
186
190
 
187
- <Box flexDirection="column" flexGrow={1}>
191
+ <Box flexDirection="column" flexGrow={1} overflow="hidden">
188
192
  {levelViews}
189
193
  </Box>
190
194
 
191
- <Box marginTop={1}>
195
+ <Box marginTop={1} flexShrink={0}>
192
196
  <Text color={tuiColors.textTertiary}>├─ TOTAL ─────────────────────────</Text>
193
197
  </Box>
194
- <Box flexDirection="row">
198
+ <Box flexDirection="row" flexShrink={0}>
195
199
  <Text color={tuiColors.textSecondary}>Progress: </Text>
196
200
  <AnimatedProgressBar
197
201
  progress={workflowState.totalProgress}
@@ -7,6 +7,7 @@ interface LogsPanelProps {
7
7
  logs: string[];
8
8
  isActive: boolean;
9
9
  isStreaming?: boolean;
10
+ maxHeight?: number;
10
11
  }
11
12
 
12
13
  const MAX_DISPLAYED_LOGS = 12;
@@ -62,12 +63,13 @@ const LogLine = memo(function LogLine({ log, isNew }: LogLineProps) {
62
63
  );
63
64
  });
64
65
 
65
- export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming = false }: LogsPanelProps) {
66
+ export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming = false, maxHeight }: LogsPanelProps) {
66
67
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
67
68
  const [highlightedIndex, setHighlightedIndex] = useState<number | null>(null);
68
69
  const timeoutRef = useRef<NodeJS.Timeout | null>(null);
69
70
 
70
- const displayLogs = useMemo(() => logs.slice(-MAX_DISPLAYED_LOGS), [logs]);
71
+ const maxLogs = maxHeight ? Math.max(3, maxHeight - 4) : MAX_DISPLAYED_LOGS;
72
+ const displayLogs = useMemo(() => logs.slice(-maxLogs), [logs, maxLogs]);
71
73
 
72
74
  useEffect(() => {
73
75
  if (logs.length === 0) return;
@@ -97,11 +99,12 @@ export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming =
97
99
  <Box
98
100
  flexDirection="column"
99
101
  flexGrow={1}
102
+ height={maxHeight}
100
103
  borderStyle="single"
101
104
  borderColor={borderColor}
102
105
  paddingX={1}
103
106
  >
104
- <Box marginBottom={1}>
107
+ <Box marginBottom={1} flexShrink={0}>
105
108
  <Text color={tuiColors.primary} bold>┌─</Text>
106
109
  <Text color={tuiColors.primary} bold> LOGS_STREAM </Text>
107
110
  <Text color={tuiColors.textTertiary}>────────────────────────────</Text>
@@ -21,6 +21,7 @@ interface MemoryPanelProps {
21
21
  cacheHitRate?: number;
22
22
  isActive?: boolean;
23
23
  tick?: number;
24
+ maxHeight?: number;
24
25
  }
25
26
 
26
27
  const DEFAULT_NODES: MemoryNode[] = [
@@ -68,7 +69,8 @@ export const MemoryPanel = memo(function MemoryPanel({
68
69
  nodeCount = 0,
69
70
  cacheHitRate = 0,
70
71
  isActive = false,
71
- tick = 0
72
+ tick = 0,
73
+ maxHeight
72
74
  }: MemoryPanelProps) {
73
75
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
74
76
 
@@ -119,39 +121,40 @@ export const MemoryPanel = memo(function MemoryPanel({
119
121
  <Box
120
122
  flexDirection="column"
121
123
  flexGrow={1}
124
+ height={maxHeight}
122
125
  borderStyle="single"
123
126
  borderColor={borderColor}
124
127
  paddingX={1}
125
128
  >
126
- <Box marginBottom={1}>
129
+ <Box marginBottom={1} flexShrink={0}>
127
130
  <Text color={tuiColors.primary} bold>┌─</Text>
128
131
  <Text color={tuiColors.primary} bold> QSGM </Text>
129
132
  <Text color={tuiColors.textTertiary}>── nodes: {displayNodeCount} ──</Text>
130
133
  {isActive && <Pulse interval={500} color={tuiColors.primary} type="pulse" />}
131
134
  </Box>
132
135
 
133
- <Box flexDirection="column">
136
+ <Box flexDirection="column" flexShrink={0}>
134
137
  <Text color={tuiColors.textTertiary} bold>QUANTUM_SEMANTIC_GRAPH_MEMORY</Text>
135
138
  </Box>
136
139
 
137
- <Box flexDirection="column" marginTop={1}>
140
+ <Box flexDirection="column" marginTop={1} overflow="hidden">
138
141
  <Text color={tuiColors.textTertiary} bold>GRAPH VISUALIZATION</Text>
139
142
  <Box flexDirection="column" marginTop={1}>
140
143
  {nodeElements}
141
144
  </Box>
142
145
  </Box>
143
146
 
144
- <Box flexDirection="column" marginTop={1}>
147
+ <Box flexDirection="column" marginTop={1} overflow="hidden">
145
148
  <Text color={tuiColors.textTertiary} bold>CONNECTIONS</Text>
146
149
  <Box flexDirection="column" marginTop={1}>
147
150
  {edgeElements}
148
151
  </Box>
149
152
  </Box>
150
153
 
151
- <Box marginTop={1}>
154
+ <Box marginTop={1} flexShrink={0}>
152
155
  <Text color={tuiColors.textTertiary}>├─ STATS ───────────────────</Text>
153
156
  </Box>
154
- <Box flexDirection="row">
157
+ <Box flexDirection="row" flexShrink={0}>
155
158
  <Text color={tuiColors.textSecondary}>Cache Hit:</Text>
156
159
  <Text color={tuiColors.success}> </Text>
157
160
  <Pulse interval={800} color={tuiColors.success} type="breath" />
@@ -17,6 +17,7 @@ interface MetricsPanelProps {
17
17
  fitness: number;
18
18
  isActive: boolean;
19
19
  tick?: number;
20
+ maxHeight?: number;
20
21
  }
21
22
 
22
23
  interface AgentUsage {
@@ -61,7 +62,8 @@ export const MetricsPanel = memo(function MetricsPanel({
61
62
  metrics,
62
63
  fitness,
63
64
  isActive,
64
- tick = 0
65
+ tick = 0,
66
+ maxHeight
65
67
  }: MetricsPanelProps) {
66
68
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
67
69
  const fitnessColor = fitness >= 0.9
@@ -95,17 +97,18 @@ export const MetricsPanel = memo(function MetricsPanel({
95
97
  <Box
96
98
  flexDirection="column"
97
99
  width={30}
100
+ height={maxHeight}
98
101
  borderStyle="single"
99
102
  borderColor={borderColor}
100
103
  paddingX={1}
101
104
  >
102
- <Box marginBottom={1}>
105
+ <Box marginBottom={1} flexShrink={0}>
103
106
  <Text color={tuiColors.primary} bold>┌─</Text>
104
107
  <Text color={tuiColors.primary} bold> PERFORMANCE </Text>
105
108
  <Text color={tuiColors.textTertiary}>─────────────</Text>
106
109
  </Box>
107
110
 
108
- <Box flexDirection="column">
111
+ <Box flexDirection="column" flexShrink={0}>
109
112
  <Text color={tuiColors.textTertiary} bold>METRICS</Text>
110
113
 
111
114
  <Box flexDirection="row" marginTop={1}>
@@ -130,7 +133,7 @@ export const MetricsPanel = memo(function MetricsPanel({
130
133
  </Box>
131
134
  </Box>
132
135
 
133
- <Box flexDirection="column" marginTop={1}>
136
+ <Box flexDirection="column" marginTop={1} flexShrink={0}>
134
137
  <Text color={tuiColors.textTertiary} bold>FITNESS SCORE</Text>
135
138
  <FitnessAnimator value={fitness} />
136
139
  <Box flexDirection="row">
@@ -138,7 +141,7 @@ export const MetricsPanel = memo(function MetricsPanel({
138
141
  </Box>
139
142
  </Box>
140
143
 
141
- <Box flexDirection="column" marginTop={1}>
144
+ <Box flexDirection="column" marginTop={1} overflow="hidden">
142
145
  <Text color={tuiColors.textTertiary} bold>TOP AGENTS</Text>
143
146
  <Box flexDirection="column" marginTop={1}>
144
147
  {agentElements}