rax-flow 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/bin.js +8 -6
  2. package/dist/bin.js.map +1 -1
  3. package/dist/hub/commands/index.d.ts.map +1 -1
  4. package/dist/hub/commands/index.js +7 -4
  5. package/dist/hub/commands/index.js.map +1 -1
  6. package/dist/hub/event-listener.d.ts +6 -0
  7. package/dist/hub/event-listener.d.ts.map +1 -1
  8. package/dist/hub/event-listener.js +10 -6
  9. package/dist/hub/event-listener.js.map +1 -1
  10. package/dist/hub/index.d.ts.map +1 -1
  11. package/dist/hub/index.js +12 -0
  12. package/dist/hub/index.js.map +1 -1
  13. package/dist/setup/components/ApiKeyInput.d.ts +25 -0
  14. package/dist/setup/components/ApiKeyInput.d.ts.map +1 -0
  15. package/dist/setup/components/ApiKeyInput.js +54 -0
  16. package/dist/setup/components/ApiKeyInput.js.map +1 -0
  17. package/dist/setup/components/AsciiBanner.d.ts +22 -0
  18. package/dist/setup/components/AsciiBanner.d.ts.map +1 -0
  19. package/dist/setup/components/AsciiBanner.js +55 -0
  20. package/dist/setup/components/AsciiBanner.js.map +1 -0
  21. package/dist/setup/components/CliDetector.d.ts +17 -0
  22. package/dist/setup/components/CliDetector.d.ts.map +1 -0
  23. package/dist/setup/components/CliDetector.js +79 -0
  24. package/dist/setup/components/CliDetector.js.map +1 -0
  25. package/dist/setup/components/ModeSelector.d.ts +8 -0
  26. package/dist/setup/components/ModeSelector.d.ts.map +1 -0
  27. package/dist/setup/components/ModeSelector.js +76 -0
  28. package/dist/setup/components/ModeSelector.js.map +1 -0
  29. package/dist/setup/components/ProviderSelector.d.ts +18 -0
  30. package/dist/setup/components/ProviderSelector.d.ts.map +1 -0
  31. package/dist/setup/components/ProviderSelector.js +97 -0
  32. package/dist/setup/components/ProviderSelector.js.map +1 -0
  33. package/dist/setup/components/SetupWizard.d.ts +2 -0
  34. package/dist/setup/components/SetupWizard.d.ts.map +1 -0
  35. package/dist/setup/components/SetupWizard.js +212 -0
  36. package/dist/setup/components/SetupWizard.js.map +1 -0
  37. package/dist/setup/components/StepIndicator.d.ts +13 -0
  38. package/dist/setup/components/StepIndicator.d.ts.map +1 -0
  39. package/dist/setup/components/StepIndicator.js +18 -0
  40. package/dist/setup/components/StepIndicator.js.map +1 -0
  41. package/dist/setup/components/SuccessScreen.d.ts +18 -0
  42. package/dist/setup/components/SuccessScreen.d.ts.map +1 -0
  43. package/dist/setup/components/SuccessScreen.js +38 -0
  44. package/dist/setup/components/SuccessScreen.js.map +1 -0
  45. package/dist/setup/index.d.ts +12 -0
  46. package/dist/setup/index.d.ts.map +1 -0
  47. package/dist/setup/index.js +29 -0
  48. package/dist/setup/index.js.map +1 -0
  49. package/dist/setup/utils/cli-detection.d.ts +12 -0
  50. package/dist/setup/utils/cli-detection.d.ts.map +1 -0
  51. package/dist/setup/utils/cli-detection.js +83 -0
  52. package/dist/setup/utils/cli-detection.js.map +1 -0
  53. package/dist/setup/utils/config-writer.d.ts +43 -0
  54. package/dist/setup/utils/config-writer.d.ts.map +1 -0
  55. package/dist/setup/utils/config-writer.js +180 -0
  56. package/dist/setup/utils/config-writer.js.map +1 -0
  57. package/dist/tui/App.d.ts +2 -1
  58. package/dist/tui/App.d.ts.map +1 -1
  59. package/dist/tui/App.js +78 -18
  60. package/dist/tui/App.js.map +1 -1
  61. package/dist/tui/components/AgentStateIcon.d.ts +18 -0
  62. package/dist/tui/components/AgentStateIcon.d.ts.map +1 -0
  63. package/dist/tui/components/AgentStateIcon.js +57 -0
  64. package/dist/tui/components/AgentStateIcon.js.map +1 -0
  65. package/dist/tui/components/AnimatedBranch.d.ts +39 -0
  66. package/dist/tui/components/AnimatedBranch.d.ts.map +1 -0
  67. package/dist/tui/components/AnimatedBranch.js +64 -0
  68. package/dist/tui/components/AnimatedBranch.js.map +1 -0
  69. package/dist/tui/components/ChatPanel.d.ts +2 -1
  70. package/dist/tui/components/ChatPanel.d.ts.map +1 -1
  71. package/dist/tui/components/ChatPanel.js +47 -28
  72. package/dist/tui/components/ChatPanel.js.map +1 -1
  73. package/dist/tui/components/DAGPanel.d.ts +14 -2
  74. package/dist/tui/components/DAGPanel.d.ts.map +1 -1
  75. package/dist/tui/components/DAGPanel.js +48 -27
  76. package/dist/tui/components/DAGPanel.js.map +1 -1
  77. package/dist/tui/components/ExecutionTimeline.d.ts +34 -0
  78. package/dist/tui/components/ExecutionTimeline.d.ts.map +1 -0
  79. package/dist/tui/components/ExecutionTimeline.js +67 -0
  80. package/dist/tui/components/ExecutionTimeline.js.map +1 -0
  81. package/dist/tui/components/Header.d.ts +2 -1
  82. package/dist/tui/components/Header.d.ts.map +1 -1
  83. package/dist/tui/components/Header.js +23 -20
  84. package/dist/tui/components/Header.js.map +1 -1
  85. package/dist/tui/components/HelpOverlay.d.ts +2 -1
  86. package/dist/tui/components/HelpOverlay.d.ts.map +1 -1
  87. package/dist/tui/components/HelpOverlay.js +59 -41
  88. package/dist/tui/components/HelpOverlay.js.map +1 -1
  89. package/dist/tui/components/InputBar.d.ts +3 -1
  90. package/dist/tui/components/InputBar.d.ts.map +1 -1
  91. package/dist/tui/components/InputBar.js +12 -7
  92. package/dist/tui/components/InputBar.js.map +1 -1
  93. package/dist/tui/components/LogsPanel.d.ts +3 -1
  94. package/dist/tui/components/LogsPanel.d.ts.map +1 -1
  95. package/dist/tui/components/LogsPanel.js +52 -3
  96. package/dist/tui/components/LogsPanel.js.map +1 -1
  97. package/dist/tui/components/MemoryPanel.d.ts +8 -6
  98. package/dist/tui/components/MemoryPanel.d.ts.map +1 -1
  99. package/dist/tui/components/MemoryPanel.js +37 -10
  100. package/dist/tui/components/MemoryPanel.js.map +1 -1
  101. package/dist/tui/components/MetricsPanel.d.ts +12 -7
  102. package/dist/tui/components/MetricsPanel.d.ts.map +1 -1
  103. package/dist/tui/components/MetricsPanel.js +24 -11
  104. package/dist/tui/components/MetricsPanel.js.map +1 -1
  105. package/dist/tui/components/StatusPanel.d.ts +3 -1
  106. package/dist/tui/components/StatusPanel.d.ts.map +1 -1
  107. package/dist/tui/components/StatusPanel.js +20 -18
  108. package/dist/tui/components/StatusPanel.js.map +1 -1
  109. package/dist/tui/components/TaskTree.d.ts +28 -0
  110. package/dist/tui/components/TaskTree.d.ts.map +1 -0
  111. package/dist/tui/components/TaskTree.js +29 -0
  112. package/dist/tui/components/TaskTree.js.map +1 -0
  113. package/dist/tui/components/animations/ProgressBar.d.ts +39 -0
  114. package/dist/tui/components/animations/ProgressBar.d.ts.map +1 -0
  115. package/dist/tui/components/animations/ProgressBar.js +39 -0
  116. package/dist/tui/components/animations/ProgressBar.js.map +1 -0
  117. package/dist/tui/components/animations/Pulse.d.ts +17 -0
  118. package/dist/tui/components/animations/Pulse.d.ts.map +1 -0
  119. package/dist/tui/components/animations/Pulse.js +47 -0
  120. package/dist/tui/components/animations/Pulse.js.map +1 -0
  121. package/dist/tui/components/animations/Spinner.d.ts +13 -0
  122. package/dist/tui/components/animations/Spinner.d.ts.map +1 -0
  123. package/dist/tui/components/animations/Spinner.js +36 -0
  124. package/dist/tui/components/animations/Spinner.js.map +1 -0
  125. package/dist/tui/components/animations/StatusAnimator.d.ts +27 -0
  126. package/dist/tui/components/animations/StatusAnimator.d.ts.map +1 -0
  127. package/dist/tui/components/animations/StatusAnimator.js +85 -0
  128. package/dist/tui/components/animations/StatusAnimator.js.map +1 -0
  129. package/dist/tui/components/animations/TypingEffect.d.ts +26 -0
  130. package/dist/tui/components/animations/TypingEffect.d.ts.map +1 -0
  131. package/dist/tui/components/animations/TypingEffect.js +59 -0
  132. package/dist/tui/components/animations/TypingEffect.js.map +1 -0
  133. package/dist/tui/components/animations/index.d.ts +8 -0
  134. package/dist/tui/components/animations/index.d.ts.map +1 -0
  135. package/dist/tui/components/animations/index.js +6 -0
  136. package/dist/tui/components/animations/index.js.map +1 -0
  137. package/dist/tui/hooks/useAnimation.d.ts +42 -0
  138. package/dist/tui/hooks/useAnimation.d.ts.map +1 -0
  139. package/dist/tui/hooks/useAnimation.js +212 -0
  140. package/dist/tui/hooks/useAnimation.js.map +1 -0
  141. package/dist/tui/hooks/useAppState.d.ts +9 -6
  142. package/dist/tui/hooks/useAppState.d.ts.map +1 -1
  143. package/dist/tui/hooks/useAppState.js +84 -69
  144. package/dist/tui/hooks/useAppState.js.map +1 -1
  145. package/dist/tui/services/orchestrator.d.ts.map +1 -1
  146. package/dist/tui/services/orchestrator.js +47 -3
  147. package/dist/tui/services/orchestrator.js.map +1 -1
  148. package/dist/tui/styles/borders.d.ts +31 -0
  149. package/dist/tui/styles/borders.d.ts.map +1 -0
  150. package/dist/tui/styles/borders.js +47 -0
  151. package/dist/tui/styles/borders.js.map +1 -0
  152. package/dist/tui/styles/colors.d.ts +18 -0
  153. package/dist/tui/styles/colors.d.ts.map +1 -0
  154. package/dist/tui/styles/colors.js +18 -0
  155. package/dist/tui/styles/colors.js.map +1 -0
  156. package/dist/tui/styles/index.d.ts +6 -0
  157. package/dist/tui/styles/index.d.ts.map +1 -0
  158. package/dist/tui/styles/index.js +6 -0
  159. package/dist/tui/styles/index.js.map +1 -0
  160. package/dist/tui/styles/indicators.d.ts +67 -0
  161. package/dist/tui/styles/indicators.d.ts.map +1 -0
  162. package/dist/tui/styles/indicators.js +42 -0
  163. package/dist/tui/styles/indicators.js.map +1 -0
  164. package/dist/tui/styles/layout.d.ts +21 -0
  165. package/dist/tui/styles/layout.d.ts.map +1 -0
  166. package/dist/tui/styles/layout.js +42 -0
  167. package/dist/tui/styles/layout.js.map +1 -0
  168. package/dist/tui/styles/providers.d.ts +77 -0
  169. package/dist/tui/styles/providers.d.ts.map +1 -0
  170. package/dist/tui/styles/providers.js +31 -0
  171. package/dist/tui/styles/providers.js.map +1 -0
  172. package/dist/tui/utils/animation.d.ts +44 -0
  173. package/dist/tui/utils/animation.d.ts.map +1 -0
  174. package/dist/tui/utils/animation.js +107 -0
  175. package/dist/tui/utils/animation.js.map +1 -0
  176. package/package.json +8 -8
  177. package/src/bin.ts +8 -5
  178. package/src/hub/commands/index.ts +7 -4
  179. package/src/hub/event-listener.ts +14 -10
  180. package/src/hub/index.ts +14 -2
  181. package/src/setup/components/ApiKeyInput.tsx +158 -0
  182. package/src/setup/components/AsciiBanner.tsx +125 -0
  183. package/src/setup/components/CliDetector.tsx +230 -0
  184. package/src/setup/components/ModeSelector.tsx +137 -0
  185. package/src/setup/components/ProviderSelector.tsx +174 -0
  186. package/src/setup/components/SetupWizard.tsx +368 -0
  187. package/src/setup/components/StepIndicator.tsx +74 -0
  188. package/src/setup/components/SuccessScreen.tsx +229 -0
  189. package/src/setup/index.ts +34 -0
  190. package/src/setup/utils/cli-detection.ts +99 -0
  191. package/src/setup/utils/config-writer.ts +249 -0
  192. package/src/tui/App.tsx +95 -64
  193. package/src/tui/components/AgentStateIcon.tsx +84 -0
  194. package/src/tui/components/AnimatedBranch.tsx +134 -0
  195. package/src/tui/components/ChatPanel.tsx +85 -43
  196. package/src/tui/components/DAGPanel.tsx +150 -58
  197. package/src/tui/components/ExecutionTimeline.tsx +225 -0
  198. package/src/tui/components/Header.tsx +67 -43
  199. package/src/tui/components/HelpOverlay.tsx +118 -61
  200. package/src/tui/components/InputBar.tsx +33 -19
  201. package/src/tui/components/LogsPanel.tsx +106 -14
  202. package/src/tui/components/MemoryPanel.tsx +106 -42
  203. package/src/tui/components/MetricsPanel.tsx +102 -61
  204. package/src/tui/components/StatusPanel.tsx +84 -37
  205. package/src/tui/components/TaskTree.tsx +159 -0
  206. package/src/tui/components/animations/ProgressBar.tsx +160 -0
  207. package/src/tui/components/animations/Pulse.tsx +73 -0
  208. package/src/tui/components/animations/Spinner.tsx +54 -0
  209. package/src/tui/components/animations/StatusAnimator.tsx +153 -0
  210. package/src/tui/components/animations/TypingEffect.tsx +119 -0
  211. package/src/tui/components/animations/index.ts +16 -0
  212. package/src/tui/hooks/useAnimation.ts +290 -0
  213. package/src/tui/hooks/useAppState.ts +52 -32
  214. package/src/tui/services/orchestrator.ts +57 -4
  215. package/src/tui/styles/borders.ts +51 -0
  216. package/src/tui/styles/colors.ts +19 -0
  217. package/src/tui/styles/index.ts +20 -0
  218. package/src/tui/styles/indicators.ts +54 -0
  219. package/src/tui/styles/layout.ts +44 -0
  220. package/src/tui/styles/providers.ts +32 -0
  221. package/src/tui/utils/animation.ts +124 -0
  222. package/LICENSE +0 -21
  223. package/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionTimeline.js","sourceRoot":"","sources":["../../../src/tui/components/ExecutionTimeline.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  interface HeaderProps {
2
3
  projectName: string;
3
4
  agentCount: number;
@@ -6,6 +7,6 @@ interface HeaderProps {
6
7
  tick: number;
7
8
  activePanel: string;
8
9
  }
9
- export declare function Header({ projectName, agentCount, provider, status, tick, activePanel }: HeaderProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare const Header: React.NamedExoticComponent<HeaderProps>;
10
11
  export {};
11
12
  //# sourceMappingURL=Header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAgB,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,2CA8DnG"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAaD,eAAO,MAAM,MAAM,yCAmFjB,CAAC"}
@@ -1,7 +1,9 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useMemo } from "react";
2
3
  import { Box, Text } from "ink";
3
- const spinnerFrames = ["◐", "◓", "◑", ""];
4
- const panelNames = {
4
+ import { tuiColors, getStatusIndicator, getProviderTag } from "../styles/index.js";
5
+ import { StatusPulse } from "./animations/index.js";
6
+ const PANEL_NAMES = {
5
7
  chat: "CHAT",
6
8
  dag: "DAG",
7
9
  status: "STATUS",
@@ -9,21 +11,22 @@ const panelNames = {
9
11
  metrics: "METRICS",
10
12
  memory: "MEMORY",
11
13
  };
12
- export function Header({ projectName, agentCount, provider, status, tick, activePanel }) {
13
- const statusColors = {
14
- ready: "green",
15
- running: "yellow",
16
- error: "red",
17
- };
18
- const statusText = {
19
- ready: "READY",
20
- running: "RUNNING",
21
- error: "ERROR",
22
- };
23
- const animatedStatus = status === "running"
24
- ? spinnerFrames[tick % spinnerFrames.length]
25
- : status === "error" ? "" : "●";
26
- const panels = ["chat", "dag", "logs", "metrics", "memory"];
27
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "gray", width: "100%", children: [_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", paddingX: 1, children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: "#f97316", bold: true, children: "\u25A0" }), _jsx(Text, { color: "white", bold: true, children: " RAX-FLOW" }), _jsx(Text, { color: "gray", children: " HUB" })] }), _jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: "gray", children: "Project:" }), _jsxs(Text, { color: "cyan", children: [" ", projectName] }), _jsx(Text, { color: "gray", children: " \u2502 Agents:" }), _jsxs(Text, { color: "green", children: [" ", agentCount, "/12"] }), _jsxs(Text, { color: "gray", children: [" \u2502 [", provider, "]"] }), _jsxs(Text, { color: statusColors[status], children: [" ", animatedStatus, " ", statusText[status]] })] })] }), _jsxs(Box, { flexDirection: "row", paddingX: 1, justifyContent: "space-between", children: [_jsx(Box, { flexDirection: "row", children: panels.map((panel) => (_jsx(Box, { marginRight: 1, children: _jsxs(Text, { color: activePanel === panel ? "#f97316" : "gray", bold: activePanel === panel, children: ["[", panelNames[panel], "]"] }) }, panel))) }), _jsx(Box, { flexDirection: "row", children: _jsx(Text, { color: "gray", children: "Tab: Switch \u2502 \u2190: Toggle view \u2502 ?: Help \u2502 Ctrl+C: Quit" }) })] })] }));
28
- }
14
+ const PANELS = ["chat", "dag", "logs", "metrics", "memory"];
15
+ export const Header = memo(function Header({ projectName, agentCount, provider, status, tick, activePanel }) {
16
+ const statusInfo = useMemo(() => getStatusIndicator(status), [status]);
17
+ const providerInfo = useMemo(() => getProviderTag(provider), [provider]);
18
+ const statusText = status === "ready" ? "ONLINE" : status === "running" ? "RUNNING" : "ERROR";
19
+ const statusColor = status === "ready"
20
+ ? tuiColors.success
21
+ : status === "running"
22
+ ? tuiColors.warning
23
+ : tuiColors.error;
24
+ const pulseStatus = status === "ready"
25
+ ? "online"
26
+ : status === "running"
27
+ ? "running"
28
+ : "error";
29
+ const panelElements = useMemo(() => PANELS.map((panel) => (_jsx(Box, { marginRight: 1, children: _jsxs(Text, { color: activePanel === panel ? tuiColors.primary : tuiColors.textTertiary, bold: activePanel === panel, children: ["[", PANEL_NAMES[panel], "]"] }) }, panel))), [activePanel]);
30
+ return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", paddingX: 1, borderStyle: "single", borderColor: tuiColors.border, children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u25A0" }), _jsx(Text, { color: tuiColors.textPrimary, bold: true, children: " RAX-FLOW" }), _jsx(Text, { color: tuiColors.textSecondary, children: " HUB" })] }), _jsxs(Box, { flexDirection: "row", alignItems: "center", gap: 1, children: [_jsx(Text, { color: tuiColors.textTertiary, children: "Project:" }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", projectName] }), _jsx(Text, { color: tuiColors.textQuaternary, children: " \u2502" }), _jsx(Text, { color: tuiColors.textTertiary, children: " Agents:" }), _jsxs(Text, { color: tuiColors.success, children: [" ", agentCount, "/12"] }), _jsx(Text, { color: tuiColors.textQuaternary, children: " \u2502" }), _jsx(Text, { color: tuiColors.textSecondary, children: providerInfo.code }), _jsx(Text, { color: statusColor, children: " " }), _jsx(StatusPulse, { status: pulseStatus, tick: tick }), _jsxs(Text, { color: statusColor, children: [" ", statusText] })] })] }), _jsx(Box, { borderStyle: "single", borderColor: tuiColors.primary, paddingX: 1, children: _jsx(Text, { color: tuiColors.textTertiary, italic: true, children: "Orchestrator that Evolves with Your Host Tools" }) }), _jsxs(Box, { flexDirection: "row", paddingX: 1, justifyContent: "space-between", children: [_jsx(Box, { flexDirection: "row", children: panelElements }), _jsx(Box, { flexDirection: "row", children: _jsx(Text, { color: tuiColors.textQuaternary, children: "Tab:Switch \u2502 \u2190:View \u2502 ?:Help \u2502 Ctrl+C:Quit" }) })] })] }));
31
+ });
29
32
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ import React from "react";
1
2
  interface HelpOverlayProps {
2
3
  onDismiss: () => void;
3
4
  }
4
- export declare function HelpOverlay({ onDismiss }: HelpOverlayProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare const HelpOverlay: React.NamedExoticComponent<HelpOverlayProps>;
5
6
  export {};
6
7
  //# sourceMappingURL=HelpOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HelpOverlay.d.ts","sourceRoot":"","sources":["../../../src/tui/components/HelpOverlay.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CA2E1D"}
1
+ {"version":3,"file":"HelpOverlay.d.ts","sourceRoot":"","sources":["../../../src/tui/components/HelpOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAI7C,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAsDD,eAAO,MAAM,WAAW,8CA+EtB,CAAC"}
@@ -1,42 +1,60 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text, useInput } from "ink";
3
- export function HelpOverlay({ onDismiss }) {
4
- useInput((input, key) => {
5
- if (key.escape || input === "q") {
6
- onDismiss();
7
- }
8
- });
9
- const sections = [
10
- {
11
- title: "COMMANDES",
12
- items: [
13
- ["/run <prompt>", "Exécuter un workflow"],
14
- ["/status", "État du système"],
15
- ["/agents", "Liste des agents"],
16
- ["/providers", "Liste des providers"],
17
- ["/workflows", "Blueprints disponibles"],
18
- ["/help, ?", "Cette aide"],
19
- ["/exit", "Quitter"],
20
- ],
21
- },
22
- {
23
- title: "NAVIGATION",
24
- items: [
25
- ["Tab", "Changer de panel actif"],
26
- ["F1-F8", "Aller au panel spécifique"],
27
- ["Ctrl+C", "Quitter"],
28
- ["Esc", "Fermer l'aide"],
29
- ],
30
- },
31
- {
32
- title: "PANELS",
33
- items: [
34
- ["CHAT", "Messages et interaction"],
35
- ["DAG", "Visualisation du workflow"],
36
- ["STATUS", "Agents et providers"],
37
- ],
38
- },
39
- ];
40
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "double", borderColor: "#f97316", paddingX: 2, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "\u25A0 RAX-FLOW HELP" }), _jsx(Text, { color: "gray", children: " \u2014 [Esc] pour fermer" })] }), _jsx(Box, { flexDirection: "row", flexGrow: 1, children: sections.map((section) => (_jsxs(Box, { flexDirection: "column", width: 30, children: [_jsx(Text, { color: "gray", bold: true, underline: true, children: section.title }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: section.items.map(([cmd, desc]) => (_jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(Text, { color: "cyan", children: cmd.padEnd(16) }), _jsx(Text, { color: "white", children: desc })] }, cmd))) })] }, section.title))) }), _jsx(Box, { borderStyle: "single", borderColor: "gray", marginTop: 1, children: _jsx(Text, { color: "gray", children: "Pour ex\u00E9cuter un workflow, tapez simplement votre prompt ou /run \"...\"" }) })] }));
41
- }
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useMemo } from "react";
3
+ import { Box, Text } from "ink";
4
+ import { tuiColors } from "../styles/index.js";
5
+ const COMMAND_SECTIONS = [
6
+ {
7
+ title: "EXECUTION",
8
+ items: [
9
+ ["run <prompt>", "Execute workflow"],
10
+ ["run -w <file>", "With blueprint"],
11
+ ["run -p <n>", "Max parallel agents"],
12
+ ["retry", "Relaunch last workflow"],
13
+ ["stop / pause", "Control execution"],
14
+ ],
15
+ },
16
+ {
17
+ title: "NAVIGATION",
18
+ items: [
19
+ ["status", "System overview"],
20
+ ["agents", "Agent list & status"],
21
+ ["providers", "Provider status"],
22
+ ["workflows", "Available blueprints"],
23
+ ["memory", "QSGM graph view"],
24
+ ],
25
+ },
26
+ {
27
+ title: "MONITORING",
28
+ items: [
29
+ ["logs", "Real-time logs"],
30
+ ["logs -f", "Follow mode"],
31
+ ["metrics", "Performance stats"],
32
+ ["evolve", "Evolution history"],
33
+ ["doctor", "System diagnostic"],
34
+ ],
35
+ },
36
+ ];
37
+ const KEYBOARD_SHORTCUTS = [
38
+ ["Tab", "Cycle panels"],
39
+ ["F1-F8", "Jump to panel"],
40
+ ["Ctrl+C", "Quit"],
41
+ ["Esc", "Close overlay"],
42
+ ["?", "Toggle help"],
43
+ ];
44
+ const FUNCTION_KEYS = [
45
+ { key: "F1", label: "Help" },
46
+ { key: "F2", label: "Agents" },
47
+ { key: "F3", label: "Providers" },
48
+ { key: "F4", label: "Workflows" },
49
+ { key: "F5", label: "Logs" },
50
+ { key: "F6", label: "Metrics" },
51
+ { key: "F7", label: "Memory" },
52
+ { key: "F8", label: "Dashboard" },
53
+ ];
54
+ export const HelpOverlay = memo(function HelpOverlay({ onDismiss }) {
55
+ const functionKeyElements = useMemo(() => FUNCTION_KEYS.map((fn) => (_jsxs(Box, { marginRight: 2, children: [_jsxs(Text, { color: tuiColors.primary, children: ["[", fn.key, "]"] }), _jsxs(Text, { color: tuiColors.textSecondary, children: [" ", fn.label] })] }, fn.key))), []);
56
+ const sectionElements = useMemo(() => COMMAND_SECTIONS.map((section) => (_jsxs(Box, { flexDirection: "column", width: 28, marginRight: 2, children: [_jsxs(Text, { color: tuiColors.primary, bold: true, children: ["\u250C\u2500 ", section.title, " \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: section.items.map(([cmd, desc]) => (_jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(Text, { color: tuiColors.textPrimary, children: cmd.padEnd(14) }), _jsx(Text, { color: tuiColors.textTertiary, children: desc })] }, cmd))) })] }, section.title))), []);
57
+ const shortcutElements = useMemo(() => KEYBOARD_SHORTCUTS.map(([key, action]) => (_jsxs(Box, { marginRight: 3, children: [_jsxs(Text, { color: tuiColors.textPrimary, children: ["[", key.padEnd(6), "]"] }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" ", action] })] }, key))), []);
58
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: tuiColors.primary, paddingX: 2, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "\u25A0 RAX-FLOW HELP" }), _jsx(Text, { color: tuiColors.textTertiary, children: " \u2500\u2500 Press [Esc] or [q] to close" })] }), _jsx(Box, { borderStyle: "single", borderColor: tuiColors.border, marginBottom: 1, children: _jsx(Text, { color: tuiColors.textTertiary, children: "Orchestrator that Evolves with Your Host Tools" }) }), _jsx(Box, { flexDirection: "row", marginBottom: 1, children: functionKeyElements }), _jsx(Box, { flexDirection: "row", flexGrow: 1, children: sectionElements }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: tuiColors.primary, bold: true, children: "\u250C\u2500 KEYBOARD \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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" }) }), _jsx(Box, { flexDirection: "row", children: shortcutElements }), _jsx(Box, { borderStyle: "single", borderColor: tuiColors.border, marginTop: 1, children: _jsx(Text, { color: tuiColors.textTertiary, children: "Type your prompt to execute a workflow, or use /run \"...\" for explicit execution" }) })] }));
59
+ });
42
60
  //# sourceMappingURL=HelpOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HelpOverlay.js","sourceRoot":"","sources":["../../../src/tui/components/HelpOverlay.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAM1C,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAoB;IACzD,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAChC,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG;QACf;YACE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE;gBACL,CAAC,eAAe,EAAE,sBAAsB,CAAC;gBACzC,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBAC9B,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAC/B,CAAC,YAAY,EAAE,qBAAqB,CAAC;gBACrC,CAAC,YAAY,EAAE,wBAAwB,CAAC;gBACxC,CAAC,UAAU,EAAE,YAAY,CAAC;gBAC1B,CAAC,OAAO,EAAE,SAAS,CAAC;aACrB;SACF;QACD;YACE,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE;gBACL,CAAC,KAAK,EAAE,wBAAwB,CAAC;gBACjC,CAAC,OAAO,EAAE,2BAA2B,CAAC;gBACtC,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACrB,CAAC,KAAK,EAAE,eAAe,CAAC;aACzB;SACF;QACD;YACE,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL,CAAC,MAAM,EAAE,yBAAyB,CAAC;gBACnC,CAAC,KAAK,EAAE,2BAA2B,CAAC;gBACpC,CAAC,QAAQ,EAAE,qBAAqB,CAAC;aAClC;SACF;KACF,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,SAAS,EACrB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,2CAAuB,EACjD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,0CAA4B,IAC1C,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,YACjC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,MAAC,GAAG,IAAqB,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,aACvD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,QAAC,SAAS,kBAC9B,OAAO,CAAC,KAAK,GACT,EACP,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAClC,MAAC,GAAG,IAAW,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC,aAChD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,IAAI,GAAQ,KAFzB,GAAG,CAGP,CACP,CAAC,GACE,KAXE,OAAO,CAAC,KAAK,CAYjB,CACP,CAAC,GACE,EAEN,KAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,SAAS,EAAE,CAAC,YACvD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,8FAA8E,GAC5F,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"HelpOverlay.js","sourceRoot":"","sources":["../../../src/tui/components/HelpOverlay.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
+ import React from "react";
1
2
  interface InputBarProps {
2
3
  onSubmit: (input: string) => void;
3
4
  suggestions: string[];
4
5
  isProcessing: boolean;
6
+ projectName: string;
5
7
  }
6
- export declare function InputBar({ onSubmit, suggestions, isProcessing }: InputBarProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare const InputBar: React.NamedExoticComponent<InputBarProps>;
7
9
  export {};
8
10
  //# sourceMappingURL=InputBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/InputBar.tsx"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,aAAa,2CA4C9E"}
1
+ {"version":3,"file":"InputBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/InputBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAKpE,UAAU,aAAa;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,2CAwDnB,CAAC"}
@@ -1,16 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from "react";
2
+ import { useState, memo, useMemo, useCallback } from "react";
3
3
  import { Box, Text } from "ink";
4
4
  import TextInput from "ink-text-input";
5
- export function InputBar({ onSubmit, suggestions, isProcessing }) {
5
+ import { tuiColors } from "../styles/index.js";
6
+ export const InputBar = memo(function InputBar({ onSubmit, suggestions, isProcessing, projectName }) {
6
7
  const [input, setInput] = useState("");
7
- const handleSubmit = (value) => {
8
+ const handleSubmit = useCallback((value) => {
8
9
  if (value.trim()) {
9
10
  onSubmit(value);
10
11
  setInput("");
11
12
  }
12
- };
13
- const filteredSuggestions = suggestions.filter((s) => s.toLowerCase().startsWith(input.toLowerCase())).slice(0, 5);
14
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: [input.startsWith("/") && filteredSuggestions.length > 0 && (_jsx(Box, { flexDirection: "row", marginBottom: 1, children: filteredSuggestions.map((s) => (_jsx(Box, { marginRight: 2, children: _jsx(Text, { color: "cyan", children: s }) }, s))) })), _jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: "#f97316", bold: true, children: "\u25B6" }), _jsx(Box, { marginLeft: 1, flexGrow: 1, children: _jsx(TextInput, { value: input, onChange: setInput, onSubmit: handleSubmit, placeholder: "Tapez /help ou votre prompt...", showCursor: true }) }), isProcessing && _jsx(Text, { color: "yellow", children: " \u25CF" })] }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: "gray", dimColor: true, children: "[Ctrl+C] Quitter" }), _jsx(Text, { color: "gray", dimColor: true, children: " \u2502 [/cmd] Commandes" })] })] }));
15
- }
13
+ }, [onSubmit]);
14
+ const handleChange = useCallback((value) => {
15
+ setInput(value);
16
+ }, []);
17
+ const filteredSuggestions = useMemo(() => suggestions.filter((s) => s.toLowerCase().startsWith(input.toLowerCase())).slice(0, 5), [suggestions, input]);
18
+ const showSuggestions = input.startsWith("/") && filteredSuggestions.length > 0;
19
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: tuiColors.border, paddingX: 1, children: [showSuggestions && (_jsx(Box, { flexDirection: "row", marginBottom: 1, children: filteredSuggestions.map((s) => (_jsx(Box, { marginRight: 2, children: _jsx(Text, { color: tuiColors.primary, children: s }) }, s))) })), _jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "rax-flow://" }), _jsx(Text, { color: tuiColors.textSecondary, children: projectName }), _jsx(Text, { color: tuiColors.textPrimary, children: " > " }), _jsx(Box, { flexGrow: 1, children: _jsx(TextInput, { value: input, onChange: handleChange, onSubmit: handleSubmit, placeholder: "Enter prompt or /help...", showCursor: true }) }), isProcessing && _jsx(Text, { color: tuiColors.warning, children: " \u25CF" })] }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textQuaternary, children: "[Ctrl+C] Quit" }), _jsx(Text, { color: tuiColors.textQuaternary, children: " \u2502 [/cmd] Commands" }), _jsx(Text, { color: tuiColors.textQuaternary, children: " \u2502 [?] Help" })] })] }));
20
+ });
16
21
  //# sourceMappingURL=InputBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../../src/tui/components/InputBar.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAY,MAAM,KAAK,CAAC;AAC1C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAQvC,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAiB;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACnD,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAChD,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,aAC5E,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1D,KAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC,YACrC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,KAAC,GAAG,IAAS,WAAW,EAAE,CAAC,YACzB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,CAAC,GAAQ,IADrB,CAAC,CAEL,CACP,CAAC,GACE,CACP,EACD,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,6BAAS,EACnC,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,YAC7B,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAC,gCAAgC,EAC5C,UAAU,EAAE,IAAI,GAChB,GACE,EACL,YAAY,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,wBAAU,IAC3C,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,aACnC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,uCAAwB,EACnD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,+CAA2B,IAClD,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../../src/tui/components/InputBar.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import React from "react";
1
2
  interface LogsPanelProps {
2
3
  logs: string[];
3
4
  isActive: boolean;
5
+ isStreaming?: boolean;
4
6
  }
5
- export declare function LogsPanel({ logs, isActive }: LogsPanelProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare const LogsPanel: React.NamedExoticComponent<LogsPanelProps>;
6
8
  export {};
7
9
  //# sourceMappingURL=LogsPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,2CA4B3D"}
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,7 +1,56 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, memo, useRef, useMemo } from "react";
2
3
  import { Box, Text } from "ink";
3
- export function LogsPanel({ logs, isActive }) {
4
- const borderColor = isActive ? "#f97316" : "gray";
5
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "LOGS" }), _jsx(Text, { color: "gray", children: " STREAM" }), isActive && _jsx(Text, { color: "yellow", children: " [ACTIF]" })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [logs.slice(-12).map((log, index) => (_jsx(Text, { color: "white", wrap: "truncate", children: log }, index))), logs.length === 0 && (_jsx(Text, { color: "gray", children: "Aucun log. Lancez un workflow pour voir les logs." }))] })] }));
4
+ import { tuiColors, logStatusTags } from "../styles/index.js";
5
+ import { Spinner } from "./animations/index.js";
6
+ const MAX_DISPLAYED_LOGS = 12;
7
+ const HIGHLIGHT_DURATION = 2000;
8
+ function parseLogLine(log) {
9
+ const timeMatch = log.match(/\[(\d{2}:\d{2}:\d{2}(?:\.\d+)?)\]/);
10
+ const tagMatch = log.match(/\[(\w+)\]/g);
11
+ if (!timeMatch || !tagMatch || tagMatch.length < 2) {
12
+ return null;
13
+ }
14
+ const time = timeMatch[1];
15
+ const tag = tagMatch[1].replace(/[\[\]]/g, "").toUpperCase();
16
+ const tagConfig = Object.values(logStatusTags).find(t => t.tag.toUpperCase().includes(tag));
17
+ const color = tagConfig?.color || tuiColors.textTertiary;
18
+ const messageStart = log.indexOf(tagMatch[1]) + tagMatch[1].length;
19
+ const message = log.slice(messageStart).trim();
20
+ return { time, tag, message, color };
6
21
  }
22
+ const LogLine = memo(function LogLine({ log, isNew }) {
23
+ const parsed = useMemo(() => parseLogLine(log), [log]);
24
+ if (!parsed) {
25
+ return _jsx(Text, { color: tuiColors.textPrimary, children: log });
26
+ }
27
+ const paddedTag = useMemo(() => parsed.tag.padEnd(7), [parsed.tag]);
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
+ });
30
+ export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming = false }) {
31
+ const borderColor = isActive ? tuiColors.primary : tuiColors.border;
32
+ const [highlightedIndex, setHighlightedIndex] = useState(null);
33
+ const timeoutRef = useRef(null);
34
+ const displayLogs = useMemo(() => logs.slice(-MAX_DISPLAYED_LOGS), [logs]);
35
+ useEffect(() => {
36
+ if (logs.length === 0)
37
+ return;
38
+ if (timeoutRef.current)
39
+ clearTimeout(timeoutRef.current);
40
+ setHighlightedIndex(logs.length - 1);
41
+ timeoutRef.current = setTimeout(() => {
42
+ setHighlightedIndex(null);
43
+ }, HIGHLIGHT_DURATION);
44
+ return () => {
45
+ if (timeoutRef.current)
46
+ clearTimeout(timeoutRef.current);
47
+ };
48
+ }, [logs.length]);
49
+ const logElements = useMemo(() => displayLogs.map((log, index) => {
50
+ const logIndex = logs.length - MAX_DISPLAYED_LOGS + index;
51
+ const isNew = logIndex === highlightedIndex;
52
+ return _jsx(LogLine, { log: log, isNew: isNew }, `${logIndex}-${index}`);
53
+ }), [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
+ });
7
56
  //# sourceMappingURL=LogsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAkB;IAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,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,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,aAC7D,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,2BAAY,EACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wBAAe,EAChC,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,yBAAgB,IAC7C,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,aACvD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,KAAC,IAAI,IAAa,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,UAAU,YAC5C,GAAG,IADK,KAAK,CAET,CACR,CAAC,EACD,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CACpB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kEAAyD,CAC5E,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"LogsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  interface MemoryNode {
2
3
  id: string;
3
4
  type: string;
@@ -8,12 +9,13 @@ interface MemoryEdge {
8
9
  to: string;
9
10
  }
10
11
  interface MemoryPanelProps {
11
- nodes: MemoryNode[];
12
- edges: MemoryEdge[];
13
- nodeCount: number;
14
- cacheHitRate: number;
15
- isActive: boolean;
12
+ nodes?: MemoryNode[];
13
+ edges?: MemoryEdge[];
14
+ nodeCount?: number;
15
+ cacheHitRate?: number;
16
+ isActive?: boolean;
17
+ tick?: number;
16
18
  }
17
- export declare function MemoryPanel({ nodes, edges, nodeCount, cacheHitRate, isActive }: MemoryPanelProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare const MemoryPanel: React.NamedExoticComponent<MemoryPanelProps>;
18
20
  export {};
19
21
  //# sourceMappingURL=MemoryPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":"AAGA,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,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAeD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA+DhG"}
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,24 +1,51 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useMemo } from "react";
2
3
  import { Box, Text } from "ink";
4
+ import { tuiColors, treeChars } from "../styles/index.js";
5
+ import { Pulse } from "./animations/index.js";
3
6
  const DEFAULT_NODES = [
4
7
  { id: "1", type: "action", label: "code_gen" },
5
8
  { id: "2", type: "file", label: "auth.ts" },
6
9
  { id: "3", type: "task", label: "login" },
7
10
  { id: "4", type: "test", label: "auth.test" },
11
+ { id: "5", type: "fix", label: "patch_001" },
8
12
  ];
9
13
  const DEFAULT_EDGES = [
10
14
  { from: "1", to: "2" },
11
15
  { from: "2", to: "3" },
12
16
  { from: "3", to: "4" },
17
+ { from: "4", to: "5" },
18
+ { from: "2", to: "5" },
13
19
  ];
14
- export function MemoryPanel({ nodes, edges, nodeCount, cacheHitRate, isActive }) {
15
- const borderColor = isActive ? "#f97316" : "gray";
16
- const displayNodes = nodes.length > 0 ? nodes : DEFAULT_NODES;
17
- const displayEdges = edges.length > 0 ? edges : DEFAULT_EDGES;
18
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "MEMORY" }), _jsx(Text, { color: "gray", children: " QSGM" }), isActive && _jsx(Text, { color: "yellow", children: " [ACTIF]" })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "gray", bold: true, children: "QUANTUM SEMANTIC GRAPH" }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: "white", children: "Nodes: " }), _jsx(Text, { color: "cyan", bold: true, children: nodeCount }), _jsx(Text, { color: "gray", children: " \u2502 Cache: " }), _jsxs(Text, { color: "green", children: [cacheHitRate, "%"] })] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "RECENT NODES" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: displayNodes.slice(0, 5).map((node) => (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: "gray", children: ["[", node.type, "]"] }), _jsxs(Text, { color: "white", children: [" ", node.label] })] }, node.id))) })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "CONNECTIONS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: displayEdges.slice(0, 4).map((edge, i) => {
19
- const fromNode = displayNodes.find((n) => n.id === edge.from);
20
- const toNode = displayNodes.find((n) => n.id === edge.to);
21
- return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: fromNode?.label || "?" }), _jsx(Text, { color: "#f97316", children: " \u2500\u2500\u25B6 " }), _jsx(Text, { color: "white", children: toNode?.label || "?" })] }, i));
22
- }) })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "gray", dimColor: true, children: ["Mutations this session: +", Math.floor(Math.random() * 4)] }) })] }));
23
- }
20
+ const NODE_TYPE_COLORS = {
21
+ action: tuiColors.primary,
22
+ file: tuiColors.success,
23
+ task: tuiColors.warning,
24
+ test: tuiColors.textSecondary,
25
+ fix: tuiColors.error,
26
+ };
27
+ const NodeTypeBadge = memo(function NodeTypeBadge({ type, isActive }) {
28
+ const color = NODE_TYPE_COLORS[type] || tuiColors.textTertiary;
29
+ return (_jsxs(Box, { flexDirection: "row", children: [isActive && _jsx(Pulse, { interval: 400, color: color, type: "pulse" }), _jsxs(Text, { color: color, children: ["[", type, "]"] })] }));
30
+ });
31
+ export const MemoryPanel = memo(function MemoryPanel({ nodes, edges, nodeCount = 0, cacheHitRate = 0, isActive = false, tick = 0 }) {
32
+ const borderColor = isActive ? tuiColors.primary : tuiColors.border;
33
+ const displayNodes = (nodes && nodes.length > 0) ? nodes : DEFAULT_NODES;
34
+ const displayEdges = (edges && edges.length > 0) ? edges : DEFAULT_EDGES;
35
+ const displayNodeCount = nodeCount > 0 ? nodeCount : 247;
36
+ const displayCacheHitRate = cacheHitRate > 0 ? cacheHitRate : 94;
37
+ const activeNodeIndex = isActive ? tick % 4 : -1;
38
+ const nodeElements = useMemo(() => displayNodes.slice(0, 4).map((node, idx) => {
39
+ const isLast = idx === Math.min(3, displayNodes.length - 1);
40
+ const isNodeActive = idx === activeNodeIndex;
41
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: [treeChars.vertical, " "] }), _jsx(NodeTypeBadge, { type: node.type, isActive: isNodeActive }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", node.label] }), !isLast && (_jsx(Text, { color: tuiColors.primary, children: " \u2500\u2500\u25B6" }))] }, node.id));
42
+ }), [displayNodes, activeNodeIndex]);
43
+ const edgeElements = useMemo(() => displayEdges.slice(0, 3).map((edge, i) => {
44
+ const fromNode = displayNodes.find((n) => n.id === edge.from);
45
+ const toNode = displayNodes.find((n) => n.id === edge.to);
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
+ }), [displayEdges, displayNodes]);
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] })] })] }));
50
+ });
24
51
  //# sourceMappingURL=MemoryPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":"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"}