@ranker/raxflow 0.2.4 → 0.2.6

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 (43) hide show
  1. package/dist/hub/index.d.ts.map +1 -1
  2. package/dist/hub/index.js +19 -2
  3. package/dist/hub/index.js.map +1 -1
  4. package/dist/tui/App.d.ts.map +1 -1
  5. package/dist/tui/App.js +31 -19
  6. package/dist/tui/App.js.map +1 -1
  7. package/dist/tui/components/ChatPanel.d.ts +1 -0
  8. package/dist/tui/components/ChatPanel.d.ts.map +1 -1
  9. package/dist/tui/components/ChatPanel.js +14 -7
  10. package/dist/tui/components/ChatPanel.js.map +1 -1
  11. package/dist/tui/components/DAGPanel.d.ts +1 -0
  12. package/dist/tui/components/DAGPanel.d.ts.map +1 -1
  13. package/dist/tui/components/DAGPanel.js +12 -9
  14. package/dist/tui/components/DAGPanel.js.map +1 -1
  15. package/dist/tui/components/Header.d.ts +2 -0
  16. package/dist/tui/components/Header.d.ts.map +1 -1
  17. package/dist/tui/components/Header.js +11 -4
  18. package/dist/tui/components/Header.js.map +1 -1
  19. package/dist/tui/components/InputBar.d.ts +1 -0
  20. package/dist/tui/components/InputBar.d.ts.map +1 -1
  21. package/dist/tui/components/InputBar.js +6 -4
  22. package/dist/tui/components/InputBar.js.map +1 -1
  23. package/dist/tui/components/LogsPanel.d.ts +1 -0
  24. package/dist/tui/components/LogsPanel.d.ts.map +1 -1
  25. package/dist/tui/components/LogsPanel.js +13 -11
  26. package/dist/tui/components/LogsPanel.js.map +1 -1
  27. package/dist/tui/components/MemoryPanel.d.ts +1 -0
  28. package/dist/tui/components/MemoryPanel.d.ts.map +1 -1
  29. package/dist/tui/components/MemoryPanel.js +15 -11
  30. package/dist/tui/components/MemoryPanel.js.map +1 -1
  31. package/dist/tui/components/MetricsPanel.d.ts +1 -0
  32. package/dist/tui/components/MetricsPanel.d.ts.map +1 -1
  33. package/dist/tui/components/MetricsPanel.js +7 -9
  34. package/dist/tui/components/MetricsPanel.js.map +1 -1
  35. package/dist/tui/components/StatusPanel.d.ts +1 -0
  36. package/dist/tui/components/StatusPanel.d.ts.map +1 -1
  37. package/dist/tui/components/StatusPanel.js +10 -8
  38. package/dist/tui/components/StatusPanel.js.map +1 -1
  39. package/dist/tui/hooks/useTerminalSize.d.ts +21 -0
  40. package/dist/tui/hooks/useTerminalSize.d.ts.map +1 -0
  41. package/dist/tui/hooks/useTerminalSize.js +87 -0
  42. package/dist/tui/hooks/useTerminalSize.js.map +1 -0
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAgB7D,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FjE;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAgB7D,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0GjE;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBpF"}
package/dist/hub/index.js CHANGED
@@ -61,7 +61,8 @@ export async function startHub(options) {
61
61
  rl.close();
62
62
  return;
63
63
  }
64
- const cmdDef = commands.get(command.name) || commands.get("help");
64
+ // Check if it's a known command
65
+ const cmdDef = commands.get(command.name);
65
66
  if (cmdDef) {
66
67
  try {
67
68
  await cmdDef.handler(command.args, command.flags, context);
@@ -71,7 +72,23 @@ export async function startHub(options) {
71
72
  }
72
73
  }
73
74
  else {
74
- console.log(`Commande inconnue: ${command.name}. Tapez 'help' pour voir les commandes disponibles.`);
75
+ // If not a known command, treat it as a prompt for 'run'
76
+ // But only if it doesn't start with a slash (which would be a failed command attempt)
77
+ if (trimmed.startsWith("/")) {
78
+ console.log(`Commande inconnue: ${command.name}. Tapez 'help' pour voir les commandes disponibles.`);
79
+ }
80
+ else {
81
+ // Treat as a run prompt
82
+ const runCmd = commands.get("run");
83
+ if (runCmd) {
84
+ try {
85
+ await runCmd.handler([trimmed], {}, context);
86
+ }
87
+ catch (error) {
88
+ console.error(`❌ Erreur: ${error instanceof Error ? error.message : String(error)}`);
89
+ }
90
+ }
91
+ }
75
92
  }
76
93
  if (!isClosing) {
77
94
  rl.prompt();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAkBjF,eAAO,MAAM,GAAG,oCAoKd,CAAC"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAmBjF,eAAO,MAAM,GAAG,oCAkMd,CAAC"}
package/dist/tui/App.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import React, { useState, useEffect, useRef, useMemo, useCallback } from "react";
3
- import { Box, useApp, useInput, useStdout } from "ink";
3
+ import { Box, useApp, useInput } from "ink";
4
4
  import { Header } from "./components/Header.js";
5
5
  import { ChatPanel } from "./components/ChatPanel.js";
6
6
  import { StatusPanel } from "./components/StatusPanel.js";
@@ -11,21 +11,19 @@ import { MemoryPanel } from "./components/MemoryPanel.js";
11
11
  import { InputBar } from "./components/InputBar.js";
12
12
  import { HelpOverlay } from "./components/HelpOverlay.js";
13
13
  import { useAppState } from "./hooks/useAppState.js";
14
+ import { useTerminalSize, calculatePanelWidths } from "./hooks/useTerminalSize.js";
14
15
  const PANEL_ORDER = ["chat", "dag", "status", "logs", "metrics", "memory"];
15
16
  const TICK_INTERVAL = 200;
16
17
  export const App = React.memo(function App() {
17
18
  const { exit } = useApp();
18
- const { stdout } = useStdout();
19
+ const terminalSize = useTerminalSize();
19
20
  const { state, processCommand } = useAppState();
20
21
  const [activePanel, setActivePanel] = useState("chat");
21
22
  const [showHelp, setShowHelp] = useState(false);
22
23
  const [tick, setTick] = useState(0);
23
- const [viewMode, setViewMode] = useState("full");
24
24
  const intervalRef = useRef(null);
25
- const terminalHeight = stdout?.rows || 24;
26
- const headerHeight = 5;
27
- const inputBarHeight = 4;
28
- const availableHeight = Math.max(8, terminalHeight - headerHeight - inputBarHeight);
25
+ const { layoutMode, viewLayout, availableWidth, availableHeight } = terminalSize;
26
+ const panelWidths = useMemo(() => calculatePanelWidths(layoutMode, viewLayout, availableWidth), [layoutMode, viewLayout, availableWidth]);
29
27
  useEffect(() => {
30
28
  intervalRef.current = setInterval(() => {
31
29
  setTick((t) => t + 1);
@@ -62,9 +60,6 @@ export const App = React.memo(function App() {
62
60
  handleTab();
63
61
  return;
64
62
  }
65
- if (key.leftArrow) {
66
- setViewMode((v) => (v === "full" ? "compact" : "full"));
67
- }
68
63
  });
69
64
  const handleSubmit = useCallback((input) => {
70
65
  const trimmed = input.trim();
@@ -88,27 +83,36 @@ export const App = React.memo(function App() {
88
83
  status: state.status,
89
84
  tick,
90
85
  activePanel,
91
- }), [state.projectName, state.agentCount, state.provider, state.status, tick, activePanel]);
86
+ layoutMode,
87
+ }), [state.projectName, state.agentCount, state.provider, state.status, tick, activePanel, layoutMode]);
92
88
  const chatPanelProps = useMemo(() => ({
93
89
  messages: state.messages,
94
90
  isProcessing: state.isProcessing,
95
91
  isActive: activePanel === "chat",
96
- }), [state.messages, state.isProcessing, activePanel]);
92
+ maxHeight: availableHeight,
93
+ width: panelWidths.chat,
94
+ }), [state.messages, state.isProcessing, activePanel, availableHeight, panelWidths.chat]);
97
95
  const dagPanelProps = useMemo(() => ({
98
96
  workflowState: state.workflowState,
99
97
  tick,
100
98
  isActive: activePanel === "dag",
101
- }), [state.workflowState, tick, activePanel]);
99
+ maxHeight: availableHeight,
100
+ width: panelWidths.dag,
101
+ }), [state.workflowState, tick, activePanel, availableHeight, panelWidths.dag]);
102
102
  const logsPanelProps = useMemo(() => ({
103
103
  logs: state.logs,
104
104
  isActive: activePanel === "logs",
105
- }), [state.logs, activePanel]);
105
+ maxHeight: availableHeight,
106
+ width: panelWidths.logs,
107
+ }), [state.logs, activePanel, availableHeight, panelWidths.logs]);
106
108
  const metricsPanelProps = useMemo(() => ({
107
109
  metrics: state.metrics,
108
110
  fitness: state.fitness,
109
111
  isActive: activePanel === "metrics",
110
112
  tick,
111
- }), [state.metrics, state.fitness, activePanel, tick]);
113
+ maxHeight: Math.floor(availableHeight / 2),
114
+ width: panelWidths.metrics,
115
+ }), [state.metrics, state.fitness, activePanel, tick, availableHeight, panelWidths.metrics]);
112
116
  const memoryPanelProps = useMemo(() => ({
113
117
  nodes: [],
114
118
  edges: [],
@@ -116,7 +120,9 @@ export const App = React.memo(function App() {
116
120
  cacheHitRate: 94,
117
121
  isActive: activePanel === "memory",
118
122
  tick,
119
- }), [activePanel, tick]);
123
+ maxHeight: Math.floor(availableHeight / 2),
124
+ width: panelWidths.memory,
125
+ }), [activePanel, tick, availableHeight, panelWidths.memory]);
120
126
  const statusPanelProps = useMemo(() => ({
121
127
  agents: state.agents,
122
128
  providers: state.providers,
@@ -124,13 +130,19 @@ export const App = React.memo(function App() {
124
130
  currentWorkflow: state.currentWorkflow,
125
131
  isActive: activePanel === "status",
126
132
  tick,
127
- }), [state.agents, state.providers, state.fitness, state.currentWorkflow, activePanel, tick]);
133
+ maxHeight: availableHeight,
134
+ width: panelWidths.status,
135
+ }), [state.agents, state.providers, state.fitness, state.currentWorkflow, activePanel, tick, availableHeight, panelWidths.status]);
128
136
  const inputBarProps = useMemo(() => ({
129
137
  onSubmit: handleSubmit,
130
138
  suggestions: state.suggestions,
131
139
  isProcessing: state.isProcessing,
132
140
  projectName: state.projectName,
133
- }), [handleSubmit, state.suggestions, state.isProcessing, state.projectName]);
134
- return (_jsxs(Box, { flexDirection: "column", height: terminalHeight, width: "100%", children: [_jsx(Header, { ...headerProps }), showHelp ? (_jsx(HelpOverlay, { onDismiss: handleDismissHelp })) : (_jsxs(_Fragment, { children: [_jsxs(Box, { flexDirection: "row", width: "100%", height: availableHeight, children: [_jsx(ChatPanel, { ...chatPanelProps, maxHeight: availableHeight }), _jsx(DAGPanel, { ...dagPanelProps, maxHeight: availableHeight }), viewMode === "full" && (_jsxs(_Fragment, { children: [_jsx(LogsPanel, { ...logsPanelProps, maxHeight: availableHeight }), _jsxs(Box, { flexDirection: "column", children: [_jsx(MetricsPanel, { ...metricsPanelProps, maxHeight: Math.floor(availableHeight / 2) }), _jsx(MemoryPanel, { ...memoryPanelProps, maxHeight: Math.floor(availableHeight / 2) })] })] })), viewMode === "compact" && (_jsx(StatusPanel, { ...statusPanelProps, maxHeight: availableHeight }))] }), _jsx(InputBar, { ...inputBarProps })] }))] }));
141
+ width: availableWidth,
142
+ }), [handleSubmit, state.suggestions, state.isProcessing, state.projectName, availableWidth]);
143
+ const renderFullLayout = () => (_jsxs(Box, { flexDirection: "row", width: availableWidth, height: availableHeight, children: [_jsx(ChatPanel, { ...chatPanelProps }), _jsx(DAGPanel, { ...dagPanelProps }), _jsx(LogsPanel, { ...logsPanelProps }), _jsxs(Box, { flexDirection: "column", width: panelWidths.metrics, children: [_jsx(MetricsPanel, { ...metricsPanelProps }), _jsx(MemoryPanel, { ...memoryPanelProps })] })] }));
144
+ const renderCompactLayout = () => (_jsxs(Box, { flexDirection: "row", width: availableWidth, height: availableHeight, children: [_jsx(ChatPanel, { ...chatPanelProps }), _jsx(DAGPanel, { ...dagPanelProps }), _jsx(StatusPanel, { ...statusPanelProps })] }));
145
+ const renderMinimalLayout = () => (_jsx(Box, { flexDirection: "column", width: availableWidth, height: availableHeight, children: _jsxs(Box, { flexGrow: 1, children: [activePanel === "chat" && _jsx(ChatPanel, { ...chatPanelProps }), activePanel === "dag" && _jsx(DAGPanel, { ...dagPanelProps }), activePanel === "status" && _jsx(StatusPanel, { ...statusPanelProps }), activePanel === "logs" && _jsx(LogsPanel, { ...logsPanelProps }), activePanel === "metrics" && _jsx(MetricsPanel, { ...metricsPanelProps, maxHeight: availableHeight }), activePanel === "memory" && _jsx(MemoryPanel, { ...memoryPanelProps, maxHeight: availableHeight })] }) }));
146
+ return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(Header, { ...headerProps }), showHelp ? (_jsx(HelpOverlay, { onDismiss: handleDismissHelp })) : (_jsxs(_Fragment, { children: [layoutMode === "full" && renderFullLayout(), layoutMode === "compact" && renderCompactLayout(), layoutMode === "minimal" && renderMinimalLayout(), _jsx(InputBar, { ...inputBarProps })] }))] }));
135
147
  });
136
148
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ interface ChatPanelProps {
11
11
  isProcessing: boolean;
12
12
  isActive: boolean;
13
13
  maxHeight?: number;
14
+ width?: number;
14
15
  }
15
16
  export declare const ChatPanel: React.NamedExoticComponent<ChatPanelProps>;
16
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAK/E,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgDD,eAAO,MAAM,SAAS,4CA6DpB,CAAC"}
1
+ {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAKlE,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwDD,eAAO,MAAM,SAAS,4CAiEpB,CAAC"}
@@ -10,23 +10,29 @@ const MESSAGE_CONFIG = {
10
10
  error: { tag: "[ERROR]", color: tuiColors.error },
11
11
  success: { tag: "[SUCCESS]", color: tuiColors.success },
12
12
  };
13
- const MAX_DISPLAYED_MESSAGES = 12;
14
13
  const TYPING_SPEED_PER_CHAR = 15;
15
14
  const TYPING_BUFFER_MS = 500;
16
- const MessageItem = memo(function MessageItem({ message, animate = false }) {
15
+ const MessageItem = memo(function MessageItem({ message, animate = false, maxWidth }) {
17
16
  const config = MESSAGE_CONFIG[message.type];
18
17
  const providerInfo = useMemo(() => message.agent ? getProviderTag(message.agent) : null, [message.agent]);
19
18
  const tag = message.type === "agent" && message.agent
20
19
  ? `[${message.agent.toUpperCase().slice(0, 8)}]`
21
20
  : config.tag;
22
21
  const formattedTime = useMemo(() => formatTimestamp(message.timestamp), [message.timestamp]);
23
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: ["[", formattedTime, "]"] }), _jsx(Text, { color: config.color, bold: true, children: tag.padEnd(12) }), providerInfo && (_jsx(Text, { color: tuiColors.textTertiary, children: providerInfo.code }))] }), animate ? (_jsx(TypingEffect, { text: message.content, speed: TYPING_SPEED_PER_CHAR, showCursor: false })) : (_jsxs(Text, { color: tuiColors.textPrimary, children: [" ", message.content] }))] }));
22
+ const truncatedContent = useMemo(() => {
23
+ const maxContentWidth = Math.max(20, maxWidth - 25);
24
+ if (message.content.length > maxContentWidth * 3) {
25
+ return message.content.slice(0, maxContentWidth * 3) + "...";
26
+ }
27
+ return message.content;
28
+ }, [message.content, maxWidth]);
29
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: ["[", formattedTime, "]"] }), _jsx(Text, { color: config.color, bold: true, children: tag.slice(0, 10).padEnd(10) }), providerInfo && maxWidth > 60 && (_jsx(Text, { color: tuiColors.textTertiary, children: providerInfo.code }))] }), animate ? (_jsx(TypingEffect, { text: truncatedContent, speed: TYPING_SPEED_PER_CHAR, showCursor: false })) : (_jsxs(Text, { color: tuiColors.textPrimary, children: [" ", truncatedContent] }))] }));
24
30
  });
25
- export const ChatPanel = memo(function ChatPanel({ messages, isProcessing, isActive, maxHeight }) {
31
+ export const ChatPanel = memo(function ChatPanel({ messages, isProcessing, isActive, maxHeight = 20, width = 60 }) {
26
32
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
27
33
  const [animatingMessageId, setAnimatingMessageId] = useState(null);
28
34
  const timeoutRef = React.useRef(null);
29
- const maxMsgs = maxHeight ? Math.max(3, maxHeight - 4) : MAX_DISPLAYED_MESSAGES;
35
+ const maxMsgs = Math.max(2, Math.floor((maxHeight - 4) / 3));
30
36
  const displayMessages = useMemo(() => messages.slice(-maxMsgs), [messages, maxMsgs]);
31
37
  useEffect(() => {
32
38
  if (messages.length === 0)
@@ -45,7 +51,8 @@ export const ChatPanel = memo(function ChatPanel({ messages, isProcessing, isAct
45
51
  clearTimeout(timeoutRef.current);
46
52
  };
47
53
  }, [messages]);
48
- const messageElements = useMemo(() => displayMessages.map((msg) => (_jsx(MessageItem, { message: msg, animate: msg.id === animatingMessageId }, msg.id))), [displayMessages, animatingMessageId]);
49
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 2, 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: " CHAT " }), _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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [messageElements, isProcessing && _jsx(ProcessingIndicator, { text: "Processing" })] })] }));
54
+ const messageElements = useMemo(() => displayMessages.map((msg) => (_jsx(MessageItem, { message: msg, animate: msg.id === animatingMessageId, maxWidth: width }, msg.id))), [displayMessages, animatingMessageId, width]);
55
+ const title = width < 50 ? " CHAT " : " CHAT ";
56
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, width: width, 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: title }), _jsx(Text, { color: tuiColors.textTertiary, children: "─".repeat(Math.max(5, width - 15)) })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [messageElements, isProcessing && _jsx(ProcessingIndicator, { text: "Processing" })] })] }));
50
57
  });
51
58
  //# sourceMappingURL=ChatPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ interface DAGPanelProps {
31
31
  tick: number;
32
32
  isActive: boolean;
33
33
  maxHeight?: number;
34
+ width?: number;
34
35
  }
35
36
  export declare const DAGPanel: React.NamedExoticComponent<DAGPanelProps>;
36
37
  export type { DAGNode, DAGLevel, WorkflowState, DAGSubtask };
@@ -1 +1 @@
1
- {"version":3,"file":"DAGPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/DAGPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAI7C,OAAO,EAAkB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACzC;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAgHD,UAAU,aAAa;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,2CAwDnB,CAAC;AAEH,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"DAGPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/DAGPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAI7C,OAAO,EAAkB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACzC;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AA4GD,UAAU,aAAa;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,2CAgEnB,CAAC;AAEH,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useMemo, memo } from "react";
3
3
  import { Box, Text } from "ink";
4
4
  import { tuiColors, getStatusIndicator, getSpinnerFrame, treeChars } from "../styles/index.js";
@@ -13,7 +13,7 @@ const STATE_LABELS = {
13
13
  error: "error",
14
14
  waiting: "waiting",
15
15
  };
16
- const DAGNodeItem = memo(function DAGNodeItem({ node, tick, isLast }) {
16
+ const DAGNodeItem = memo(function DAGNodeItem({ node, tick, isLast, compact }) {
17
17
  const statusInfo = useMemo(() => getStatusIndicator(node.status), [node.status]);
18
18
  const agentState = useMemo(() => {
19
19
  if (node.state)
@@ -31,22 +31,25 @@ const DAGNodeItem = memo(function DAGNodeItem({ node, tick, isLast }) {
31
31
  : statusInfo.icon;
32
32
  const prefix = isLast ? treeChars.lastBranch : treeChars.branch;
33
33
  const timeStr = node.executionTime ? `${node.executionTime.toFixed(1)}s` : "";
34
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: [prefix, " "] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "[" }), _jsx(AgentStateIcon, { state: agentState, tick: tick }), _jsx(Text, { color: tuiColors.textSecondary, children: "]" })] }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", node.name.padEnd(18)] }), timeStr && (_jsxs(Text, { color: tuiColors.textTertiary, children: [" \u25CF ", timeStr] }))] }), node.detail && (_jsx(Box, { flexDirection: "row", children: _jsxs(Text, { color: tuiColors.textTertiary, children: [" \u2514\u2500\u2500 ", node.detail] }) })), node.subtasks && node.subtasks.length > 0 && (_jsx(Box, { flexDirection: "column", children: node.subtasks.map((subtask, idx) => (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: [" ", idx === node.subtasks.length - 1 ? '└──' : '├──', " "] }), _jsx(AgentStateIcon, { state: subtask.state, tick: tick }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" ", subtask.name] })] }, subtask.id))) }))] }));
34
+ const nodeName = compact ? node.name.slice(0, 12) : node.name;
35
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: [prefix, " "] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "[" }), _jsx(AgentStateIcon, { state: agentState, tick: tick }), _jsx(Text, { color: tuiColors.textSecondary, children: "]" })] }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", nodeName.padEnd(compact ? 12 : 18)] }), timeStr && !compact && (_jsxs(Text, { color: tuiColors.textTertiary, children: [" \u25CF ", timeStr] }))] }), node.detail && !compact && (_jsx(Box, { flexDirection: "row", children: _jsxs(Text, { color: tuiColors.textTertiary, children: [" \u2514\u2500\u2500 ", node.detail] }) }))] }));
35
36
  });
36
- const DAGLevelView = memo(function DAGLevelView({ level, tick, isActive }) {
37
+ const DAGLevelView = memo(function DAGLevelView({ level, tick, isActive, compact }) {
37
38
  const levelColor = isActive ? tuiColors.primary : tuiColors.textSecondary;
38
39
  const statusColor = level.status === 'done'
39
40
  ? tuiColors.success
40
41
  : level.status === 'running'
41
42
  ? tuiColors.warning
42
43
  : tuiColors.textTertiary;
43
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: levelColor, bold: true, children: level.name.padEnd(12) }), _jsx(AnimatedProgressBar, { progress: level.progress, width: 16, tick: tick, animated: isActive, showMarker: isActive, glowEffect: isActive })] }), _jsx(Box, { flexDirection: "row", children: _jsx(Text, { color: isActive ? tuiColors.primary : tuiColors.textTertiary, children: isActive ? "┃" : "│" }) }), level.nodes.map((node, idx) => (_jsx(DAGNodeItem, { node: node, tick: tick, isLast: idx === level.nodes.length - 1 }, node.id)))] }));
44
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: compact ? 0 : 1, children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: levelColor, bold: true, children: level.name.slice(0, compact ? 8 : 12).padEnd(compact ? 8 : 12) }), _jsx(AnimatedProgressBar, { progress: level.progress, width: compact ? 10 : 16, tick: tick, animated: isActive, showMarker: isActive, glowEffect: isActive })] }), !compact && (_jsx(Box, { flexDirection: "row", children: _jsx(Text, { color: isActive ? tuiColors.primary : tuiColors.textTertiary, children: isActive ? "┃" : "│" }) })), level.nodes.map((node, idx) => (_jsx(DAGNodeItem, { node: node, tick: tick, isLast: idx === level.nodes.length - 1, compact: compact }, node.id)))] }));
44
45
  });
45
- export const DAGPanel = memo(function DAGPanel({ workflowState, tick, isActive, maxHeight }) {
46
+ export const DAGPanel = memo(function DAGPanel({ workflowState, tick, isActive, maxHeight = 20, width = 46 }) {
46
47
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
47
- const visibleLevels = maxHeight ? Math.max(2, Math.floor((maxHeight - 6) / 4)) : workflowState.levels.length;
48
- const levelViews = useMemo(() => workflowState.levels.slice(0, visibleLevels).map((level, index) => (_jsx(DAGLevelView, { level: level, tick: tick, isActive: index === workflowState.currentLevel }, level.name))), [workflowState.levels, workflowState.currentLevel, tick, visibleLevels]);
48
+ const compact = width < 40 || maxHeight < 15;
49
+ const visibleLevels = maxHeight ? Math.max(1, Math.floor((maxHeight - 6) / (compact ? 3 : 5))) : workflowState.levels.length;
50
+ const levelViews = useMemo(() => workflowState.levels.slice(0, visibleLevels).map((level, index) => (_jsx(DAGLevelView, { level: level, tick: tick, isActive: index === workflowState.currentLevel, compact: compact }, level.name))), [workflowState.levels, workflowState.currentLevel, tick, visibleLevels, compact]);
49
51
  const isAnimating = useMemo(() => workflowState.totalProgress > 0 && workflowState.totalProgress < 100, [workflowState.totalProgress]);
50
- return (_jsxs(Box, { flexDirection: "column", width: 46, 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: " DAG_EXECUTION " }), _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" })] }), _jsx(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: levelViews }), _jsx(Box, { marginTop: 1, flexShrink: 0, children: _jsx(Text, { color: tuiColors.textTertiary, children: "\u251C\u2500 TOTAL \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" }) }), _jsxs(Box, { flexDirection: "row", flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Progress: " }), _jsx(AnimatedProgressBar, { progress: workflowState.totalProgress, width: 16, tick: tick, animated: isAnimating, showMarker: true })] })] }));
52
+ const title = compact ? " DAG " : " DAG_EXECUTION ";
53
+ return (_jsxs(Box, { flexDirection: "column", width: width, 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: title }), _jsx(Text, { color: tuiColors.textTertiary, children: "─".repeat(Math.max(5, width - (compact ? 12 : 18))) })] }), _jsx(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: levelViews }), !compact && (_jsxs(_Fragment, { children: [_jsx(Box, { marginTop: 1, flexShrink: 0, children: _jsx(Text, { color: tuiColors.textTertiary, children: "\u251C\u2500 TOTAL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500" }) }), _jsxs(Box, { flexDirection: "row", flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Progress: " }), _jsx(AnimatedProgressBar, { progress: workflowState.totalProgress, width: 10, tick: tick, animated: isAnimating, showMarker: true })] })] }))] }));
51
54
  });
52
55
  //# sourceMappingURL=DAGPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DAGPanel.js","sourceRoot":"","sources":["../../../src/tui/components/DAGPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DAGPanel.js","sourceRoot":"","sources":["../../../src/tui/components/DAGPanel.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAc,MAAM,qBAAqB,CAAC;AAuCjE,MAAM,YAAY,GAA+B;IAC/C,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAoB;IAC7F,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAe,EAAE;QAC1C,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS;QACpC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;QAC/B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IACpB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9E,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAE9D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,aAAG,MAAM,SAAS,EACrD,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,kBAAU,EAC9C,KAAC,cAAc,IAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAI,EACjD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,kBAAU,IAC1C,EACN,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,kBAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAQ,EAC/E,OAAO,IAAI,CAAC,OAAO,IAAI,CACtB,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,yBAAM,OAAO,IAAQ,CACzD,IACG,EACL,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAC1B,KAAC,GAAG,IAAC,aAAa,EAAC,KAAK,YACtB,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,0CAAa,IAAI,CAAC,MAAM,IAAQ,GAC/D,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AASH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAqB;IACnG,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC;IAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM;QACzC,CAAC,CAAC,SAAS,CAAC,OAAO;QACnB,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;YAC1B,CAAC,CAAC,SAAS,CAAC,OAAO;YACnB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;IAE7B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aACvD,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,EAAE,IAAI,kBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAQ,EACrG,KAAC,mBAAmB,IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACxB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,QAAQ,GACpB,IACE,EACL,CAAC,OAAO,IAAI,CACX,KAAC,GAAG,IAAC,aAAa,EAAC,KAAK,YACtB,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,YAC/D,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAChB,GACH,CACP,EACA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAC9B,KAAC,WAAW,IAEV,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACtC,OAAO,EAAE,OAAO,IAJX,IAAI,CAAC,EAAE,CAKZ,CACH,CAAC,IACE,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAUH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAiB;IACzH,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,GAAG,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;IAE7C,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;IAE7H,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAC9B,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACjE,KAAC,YAAY,IAEX,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,KAAK,KAAK,aAAa,CAAC,YAAY,EAC9C,OAAO,EAAE,OAAO,IAJX,KAAK,CAAC,IAAI,CAKf,CACH,CAAC,EACF,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CACjF,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAC/B,aAAa,CAAC,aAAa,GAAG,CAAC,IAAI,aAAa,CAAC,aAAa,GAAG,GAAG,EACpE,CAAC,aAAa,CAAC,aAAa,CAAC,CAC9B,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpD,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,SAAS,EACjB,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aACjC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,mCAAU,EAC9C,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,kBAAE,KAAK,GAAQ,EACnD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,YAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAQ,IAC9F,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,YACvD,UAAU,GACP,EAEL,CAAC,OAAO,IAAI,CACX,8BACE,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAC9B,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,oFAA0B,GACzD,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC,aACpC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,2BAAmB,EACvD,KAAC,mBAAmB,IAClB,QAAQ,EAAE,aAAa,CAAC,aAAa,EACrC,KAAK,EAAE,EAAE,EACT,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,WAAW,EACrB,UAAU,SACV,IACE,IACL,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { LayoutMode } from "../hooks/useTerminalSize.js";
2
3
  interface HeaderProps {
3
4
  projectName: string;
4
5
  agentCount: number;
@@ -6,6 +7,7 @@ interface HeaderProps {
6
7
  status: "ready" | "running" | "error";
7
8
  tick: number;
8
9
  activePanel: string;
10
+ layoutMode: LayoutMode;
9
11
  }
10
12
  export declare const Header: React.NamedExoticComponent<HeaderProps>;
11
13
  export {};
@@ -1 +1 @@
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,yCA6EjB,CAAC"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAI7C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,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;IACpB,UAAU,EAAE,UAAU,CAAC;CACxB;AAcD,eAAO,MAAM,MAAM,yCAyGjB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { memo, useMemo } from "react";
3
3
  import { Box, Text } from "ink";
4
4
  import { tuiColors, getStatusIndicator, getProviderTag } from "../styles/index.js";
@@ -12,7 +12,8 @@ const PANEL_NAMES = {
12
12
  memory: "MEMORY",
13
13
  };
14
14
  const PANELS = ["chat", "dag", "logs", "metrics", "memory"];
15
- export const Header = memo(function Header({ projectName, agentCount, provider, status, tick, activePanel }) {
15
+ const COMPACT_PANELS = ["chat", "dag", "status"];
16
+ export const Header = memo(function Header({ projectName, agentCount, provider, status, tick, activePanel, layoutMode }) {
16
17
  const statusInfo = useMemo(() => getStatusIndicator(status), [status]);
17
18
  const providerInfo = useMemo(() => getProviderTag(provider), [provider]);
18
19
  const statusText = status === "ready" ? "ONLINE" : status === "running" ? "RUNNING" : "ERROR";
@@ -26,7 +27,13 @@ export const Header = memo(function Header({ projectName, agentCount, provider,
26
27
  : status === "running"
27
28
  ? "running"
28
29
  : "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%", flexShrink: 0, 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: " RAXFLOW" }), _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] })] })] }), _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" }) })] })] }));
30
+ const displayPanels = layoutMode === "minimal" ? COMPACT_PANELS :
31
+ layoutMode === "compact" ? COMPACT_PANELS : PANELS;
32
+ const panelElements = useMemo(() => displayPanels.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, displayPanels]);
33
+ const showDetails = layoutMode !== "minimal";
34
+ if (layoutMode === "minimal") {
35
+ return (_jsxs(Box, { flexDirection: "row", width: "100%", justifyContent: "space-between", paddingX: 1, 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: " RAXFLOW" }), _jsx(Text, { color: statusColor, children: " " }), _jsx(StatusPulse, { status: pulseStatus, tick: tick })] }), _jsx(Box, { flexDirection: "row", children: panelElements })] }));
36
+ }
37
+ return (_jsxs(Box, { flexDirection: "column", width: "100%", flexShrink: 0, 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: " RAXFLOW" }), _jsx(Text, { color: tuiColors.textSecondary, children: " HUB" })] }), showDetails && (_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"] }), layoutMode === "full" && (_jsxs(_Fragment, { children: [_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] })] }))] }), _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 ?:Help \u2502 Ctrl+C:Quit" }) })] })] }));
31
38
  });
32
39
  //# 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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"}
@@ -4,6 +4,7 @@ interface InputBarProps {
4
4
  suggestions: string[];
5
5
  isProcessing: boolean;
6
6
  projectName: string;
7
+ width?: number;
7
8
  }
8
9
  export declare const InputBar: React.NamedExoticComponent<InputBarProps>;
9
10
  export {};
@@ -1 +1 @@
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,2CA0CnB,CAAC"}
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;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,2CAqDnB,CAAC"}
@@ -3,7 +3,7 @@ import { useState, memo, useMemo, useCallback } from "react";
3
3
  import { Box, Text } from "ink";
4
4
  import TextInput from "ink-text-input";
5
5
  import { tuiColors } from "../styles/index.js";
6
- export const InputBar = memo(function InputBar({ onSubmit, suggestions, isProcessing, projectName }) {
6
+ export const InputBar = memo(function InputBar({ onSubmit, suggestions, isProcessing, projectName, width = 100 }) {
7
7
  const [input, setInput] = useState("");
8
8
  const handleSubmit = useCallback((value) => {
9
9
  if (value.trim()) {
@@ -14,8 +14,10 @@ export const InputBar = memo(function InputBar({ onSubmit, suggestions, isProces
14
14
  const handleChange = useCallback((value) => {
15
15
  setInput(value);
16
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 (_jsx(Box, { flexDirection: "column", borderStyle: "single", borderColor: tuiColors.border, paddingX: 1, flexShrink: 0, children: _jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: tuiColors.primary, bold: true, children: "raxflow://" }), _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" })] }) }));
17
+ const compact = width < 60;
18
+ const showSuggestions = input.startsWith("/") && width > 80;
19
+ const filteredSuggestions = useMemo(() => suggestions.filter((s) => s.toLowerCase().startsWith(input.toLowerCase())).slice(0, compact ? 3 : 5), [suggestions, input, compact]);
20
+ const promptText = compact ? ">" : `raxflow://${projectName} >`;
21
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: tuiColors.border, paddingX: 1, flexShrink: 0, children: [showSuggestions && filteredSuggestions.length > 0 && (_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: promptText }), _jsx(Text, { color: tuiColors.textPrimary, children: " " }), _jsx(Box, { flexGrow: 1, children: _jsx(TextInput, { value: input, onChange: handleChange, onSubmit: handleSubmit, placeholder: compact ? "prompt..." : "Enter prompt or /help...", showCursor: true }) }), isProcessing && _jsx(Text, { color: tuiColors.warning, children: " \u25CF" })] })] }));
20
22
  });
21
23
  //# 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,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAS/C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAiB;IAChH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACjD,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACjD,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CACvC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAChD,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACb,CAAC,WAAW,EAAE,KAAK,CAAC,CACrB,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;IAEhF,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YACxG,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,iCAAkB,EACtD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,aAAa,YAAG,WAAW,GAAQ,EAC1D,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,oBAAe,EACjD,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAC,0BAA0B,EACtC,UAAU,EAAE,IAAI,GAChB,GACE,EACL,YAAY,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,wBAAW,IACtD,GACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../../src/tui/components/InputBar.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,GAAG,GAAG,EAAiB;IAC7H,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACjD,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACjD,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,KAAK,GAAG,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;IAE5D,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CACvC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAChD,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAC9B,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,WAAW,IAAI,CAAC;IAEhE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aACvG,eAAe,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpD,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,EAAE,SAAS,CAAC,OAAO,YAAG,CAAC,GAAQ,IADlC,CAAC,CAEL,CACP,CAAC,GACE,CACP,EACD,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,kBAAE,UAAU,GAAQ,EACxD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,kBAAU,EAC5C,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,0BAA0B,EAC/D,UAAU,EAAE,IAAI,GAChB,GACE,EACL,YAAY,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,wBAAW,IACtD,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -4,6 +4,7 @@ interface LogsPanelProps {
4
4
  isActive: boolean;
5
5
  isStreaming?: boolean;
6
6
  maxHeight?: number;
7
+ width?: number;
7
8
  }
8
9
  export declare const LogsPanel: React.NamedExoticComponent<LogsPanelProps>;
9
10
  export {};
@@ -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;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuDD,eAAO,MAAM,SAAS,4CAkEpB,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;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwDD,eAAO,MAAM,SAAS,4CAgEpB,CAAC"}
@@ -3,7 +3,6 @@ import { useState, useEffect, memo, useRef, useMemo } from "react";
3
3
  import { Box, Text } from "ink";
4
4
  import { tuiColors, logStatusTags } from "../styles/index.js";
5
5
  import { Spinner } from "./animations/index.js";
6
- const MAX_DISPLAYED_LOGS = 12;
7
6
  const HIGHLIGHT_DURATION = 2000;
8
7
  function parseLogLine(log) {
9
8
  const timeMatch = log.match(/\[(\d{2}:\d{2}:\d{2}(?:\.\d+)?)\]/);
@@ -19,19 +18,21 @@ function parseLogLine(log) {
19
18
  const message = log.slice(messageStart).trim();
20
19
  return { time, tag, message, color };
21
20
  }
22
- const LogLine = memo(function LogLine({ log, isNew }) {
21
+ const LogLine = memo(function LogLine({ log, isNew, compact }) {
23
22
  const parsed = useMemo(() => parseLogLine(log), [log]);
24
23
  if (!parsed) {
25
- return _jsx(Text, { color: tuiColors.textPrimary, children: log });
24
+ return _jsx(Text, { color: tuiColors.textPrimary, children: log.slice(0, compact ? 30 : 80) });
26
25
  }
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] })] }));
26
+ const paddedTag = useMemo(() => parsed.tag.slice(0, compact ? 4 : 7).padEnd(compact ? 4 : 7), [parsed.tag, compact]);
27
+ const truncatedMessage = compact ? parsed.message.slice(0, 20) : parsed.message;
28
+ return (_jsxs(Box, { flexDirection: "row", children: [!compact && _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: [" ", truncatedMessage] })] }));
29
29
  });
30
- export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming = false, maxHeight }) {
30
+ export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming = false, maxHeight = 20, width = 40 }) {
31
31
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
32
32
  const [highlightedIndex, setHighlightedIndex] = useState(null);
33
33
  const timeoutRef = useRef(null);
34
- const maxLogs = maxHeight ? Math.max(3, maxHeight - 4) : MAX_DISPLAYED_LOGS;
34
+ const compact = width < 35 || maxHeight < 12;
35
+ const maxLogs = Math.max(2, Math.floor((maxHeight - 4) / 1.5));
35
36
  const displayLogs = useMemo(() => logs.slice(-maxLogs), [logs, maxLogs]);
36
37
  useEffect(() => {
37
38
  if (logs.length === 0)
@@ -48,10 +49,11 @@ export const LogsPanel = memo(function LogsPanel({ logs, isActive, isStreaming =
48
49
  };
49
50
  }, [logs.length]);
50
51
  const logElements = useMemo(() => displayLogs.map((log, index) => {
51
- const logIndex = logs.length - MAX_DISPLAYED_LOGS + index;
52
+ const logIndex = logs.length - maxLogs + index;
52
53
  const isNew = logIndex === highlightedIndex;
53
- return _jsx(LogLine, { log: log, isNew: isNew }, `${logIndex}-${index}`);
54
- }), [displayLogs, logs.length, highlightedIndex]);
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..." })] }))] })] }));
54
+ return _jsx(LogLine, { log: log, isNew: isNew, compact: compact }, `${logIndex}-${index}`);
55
+ }), [displayLogs, logs.length, highlightedIndex, compact]);
56
+ const title = compact ? " LOGS " : " LOGS_STREAM ";
57
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, width: width, 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: title }), _jsx(Text, { color: tuiColors.textTertiary, children: "─".repeat(Math.max(5, width - (compact ? 10 : 16))) }), isStreaming && !compact && (_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: compact ? "No logs" : "No logs. Start a workflow." }))] })] }));
56
58
  });
57
59
  //# 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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"}
@@ -16,6 +16,7 @@ interface MemoryPanelProps {
16
16
  isActive?: boolean;
17
17
  tick?: number;
18
18
  maxHeight?: number;
19
+ width?: number;
19
20
  }
20
21
  export declare const MemoryPanel: React.NamedExoticComponent<MemoryPanelProps>;
21
22
  export {};
@@ -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;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyCD,eAAO,MAAM,WAAW,8CAoGtB,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;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0CD,eAAO,MAAM,WAAW,8CAgHtB,CAAC"}
@@ -24,28 +24,32 @@ const NODE_TYPE_COLORS = {
24
24
  test: tuiColors.textSecondary,
25
25
  fix: tuiColors.error,
26
26
  };
27
- const NodeTypeBadge = memo(function NodeTypeBadge({ type, isActive }) {
27
+ const NodeTypeBadge = memo(function NodeTypeBadge({ type, isActive, compact }) {
28
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, "]"] })] }));
29
+ return (_jsxs(Box, { flexDirection: "row", children: [isActive && !compact && _jsx(Pulse, { interval: 400, color: color, type: "pulse" }), _jsxs(Text, { color: color, children: ["[", compact ? type.slice(0, 4) : type, "]"] })] }));
30
30
  });
31
- export const MemoryPanel = memo(function MemoryPanel({ nodes, edges, nodeCount = 0, cacheHitRate = 0, isActive = false, tick = 0, maxHeight }) {
31
+ export const MemoryPanel = memo(function MemoryPanel({ nodes, edges, nodeCount = 0, cacheHitRate = 0, isActive = false, tick = 0, maxHeight = 15, width = 30 }) {
32
32
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
33
+ const compact = width < 25 || maxHeight < 12;
33
34
  const displayNodes = (nodes && nodes.length > 0) ? nodes : DEFAULT_NODES;
34
35
  const displayEdges = (edges && edges.length > 0) ? edges : DEFAULT_EDGES;
35
36
  const displayNodeCount = nodeCount > 0 ? nodeCount : 247;
36
37
  const displayCacheHitRate = cacheHitRate > 0 ? cacheHitRate : 94;
37
38
  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);
39
+ const maxVisibleNodes = compact ? 3 : 4;
40
+ const maxVisibleEdges = compact ? 2 : 3;
41
+ const nodeElements = useMemo(() => displayNodes.slice(0, maxVisibleNodes).map((node, idx) => {
42
+ const isLast = idx === Math.min(maxVisibleNodes - 1, displayNodes.length - 1);
40
43
  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
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: tuiColors.textTertiary, children: [compact ? " " : treeChars.vertical, " "] }), _jsx(NodeTypeBadge, { type: node.type, isActive: isNodeActive, compact: compact }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", compact ? node.label.slice(0, 8) : node.label] }), !isLast && !compact && (_jsx(Text, { color: tuiColors.primary, children: " \u2500\u2500\u25B6" }))] }, node.id));
45
+ }), [displayNodes, activeNodeIndex, compact, maxVisibleNodes]);
46
+ const edgeElements = useMemo(() => displayEdges.slice(0, maxVisibleEdges).map((edge, i) => {
44
47
  const fromNode = displayNodes.find((n) => n.id === edge.from);
45
48
  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]);
49
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: treeChars.branch }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", compact ? (fromNode?.label || "?").slice(0, 6) : fromNode?.label || "?"] }), _jsx(Text, { color: tuiColors.primary, children: " \u2192 " }), _jsx(Text, { color: tuiColors.textPrimary, children: compact ? (toNode?.label || "?").slice(0, 6) : toNode?.label || "?" })] }, i));
50
+ }), [displayEdges, displayNodes, compact, maxVisibleEdges]);
48
51
  const mutationCount = useMemo(() => Math.floor(Math.random() * 4) + 1, [tick]);
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] })] })] }));
52
+ const title = compact ? " QSGM " : " QSGM ";
53
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, width: width, 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: title }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" n:", displayNodeCount, " "] }), isActive && !compact && _jsx(Pulse, { interval: 500, color: tuiColors.primary, type: "pulse" })] }), !compact && (_jsx(Box, { flexDirection: "column", flexShrink: 0, children: _jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "QUANTUM_GRAPH" }) })), _jsxs(Box, { flexDirection: "column", marginTop: compact ? 0 : 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: compact ? "GRAPH" : "VISUALIZATION" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: nodeElements })] }), !compact && maxHeight > 12 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "LINKS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: edgeElements })] })), _jsx(Box, { marginTop: 1, flexShrink: 0, children: _jsx(Text, { color: tuiColors.textTertiary, children: "\u251C\u2500" }) }), _jsxs(Box, { flexDirection: "row", flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Cache:" }), _jsx(Text, { color: tuiColors.success, children: " " }), !compact && _jsx(Pulse, { interval: 800, color: tuiColors.success, type: "breath" }), _jsxs(Text, { color: tuiColors.success, children: [" ", displayCacheHitRate, "%"] }), !compact && _jsxs(Text, { color: tuiColors.textTertiary, children: [" \u2502 +", mutationCount] })] })] }));
50
54
  });
51
55
  //# 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;AAuB9C,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,EACR,SAAS,EACQ;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,MAAM,EAAE,SAAS,EACjB,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aACjC,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,EAAC,UAAU,EAAE,CAAC,YACvC,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,oDAAqC,GAC1E,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,aACzD,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,EAAE,QAAQ,EAAC,QAAQ,aACzD,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,EAAE,UAAU,EAAE,CAAC,YAC9B,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,YAAY,sJAAqC,GACpE,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC,aACpC,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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"}
@@ -13,6 +13,7 @@ interface MetricsPanelProps {
13
13
  isActive: boolean;
14
14
  tick?: number;
15
15
  maxHeight?: number;
16
+ width?: number;
16
17
  }
17
18
  export declare const MetricsPanel: React.NamedExoticComponent<MetricsPanelProps>;
18
19
  export {};
@@ -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;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwCD,eAAO,MAAM,YAAY,+CA2FvB,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;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwCD,eAAO,MAAM,YAAY,+CAmGvB,CAAC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, useMemo } from "react";
3
3
  import { Box, Text } from "ink";
4
4
  import { tuiColors } from "../styles/index.js";
5
- import { AnimatedProgressBar, FitnessAnimator, Pulse } from "./animations/index.js";
5
+ import { AnimatedProgressBar, Pulse } from "./animations/index.js";
6
6
  const TOP_AGENTS = [
7
7
  { name: "CodeGenerator", percent: 45 },
8
8
  { name: "TestAgent", percent: 32 },
@@ -12,16 +12,14 @@ 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, maxHeight }) {
15
+ export const MetricsPanel = memo(function MetricsPanel({ metrics, fitness, isActive, tick = 0, maxHeight = 15, width = 30 }) {
16
16
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
17
- const fitnessColor = fitness >= 0.9
18
- ? tuiColors.success
19
- : fitness >= 0.7
20
- ? tuiColors.warning
21
- : tuiColors.error;
17
+ const compact = width < 25 || maxHeight < 12;
18
+ const showTopAgents = !compact && maxHeight > 12;
22
19
  const showSuccessPulse = metrics.successRate >= 90;
23
20
  const costStr = useMemo(() => metrics.totalCost.toFixed(4), [metrics.totalCost]);
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, 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 })] })] }));
21
+ const agentElements = useMemo(() => TOP_AGENTS.slice(0, compact ? 2 : 3).map((agent, idx) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textPrimary, children: agent.name.slice(0, compact ? 10 : 14).padEnd(compact ? 10 : 14) }), _jsx(AnimatedMetricBar, { value: agent.percent, max: 100, width: compact ? 6 : 8, tick: tick, animated: isActive && idx === 0 }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" ", agent.percent, "%"] })] }, agent.name))), [tick, isActive, compact]);
22
+ const title = compact ? " PERF " : " PERFORMANCE ";
23
+ return (_jsxs(Box, { flexDirection: "column", width: width, 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: title }), _jsx(Text, { color: tuiColors.textTertiary, children: "─".repeat(Math.max(5, width - (compact ? 10 : 16))) })] }), _jsxs(Box, { flexDirection: "column", flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: compact ? "STATS" : "METRICS" }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: tuiColors.textSecondary, children: compact ? "Sess:" : "Sessions:" }), _jsxs(Text, { color: tuiColors.textPrimary, bold: true, children: [" ", metrics.sessions] })] }), !compact && (_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: compact ? "Rate:" : "Success Rate:" }), _jsxs(Text, { color: tuiColors.success, children: [" ", metrics.successRate, "%"] }), showSuccessPulse && !compact && _jsx(Pulse, { interval: 1000, color: tuiColors.success, type: "breath" })] }), !compact && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: "Cost:" }), _jsxs(Text, { color: tuiColors.warning, children: [" $", costStr] })] }))] }), !compact && (_jsxs(Box, { flexDirection: "column", marginTop: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "FITNESS" }), _jsxs(Box, { flexDirection: "row", children: [_jsx(AnimatedMetricBar, { value: fitness, max: 1, width: compact ? 8 : 12, tick: tick, animated: isActive }), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", fitness.toFixed(2)] })] })] })), showTopAgents && (_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
24
  });
27
25
  //# 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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"}
@@ -18,6 +18,7 @@ interface StatusPanelProps {
18
18
  isActive: boolean;
19
19
  tick?: number;
20
20
  maxHeight?: number;
21
+ width?: number;
21
22
  }
22
23
  export declare const StatusPanel: React.NamedExoticComponent<StatusPanelProps>;
23
24
  export {};
@@ -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;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+CD,eAAO,MAAM,WAAW,8CAkEtB,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;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAiDD,eAAO,MAAM,WAAW,8CA0EtB,CAAC"}
@@ -3,22 +3,24 @@ import { memo, useMemo } from "react";
3
3
  import { Box, Text } from "ink";
4
4
  import { tuiColors, getStatusIndicator, getProviderTag } from "../styles/index.js";
5
5
  import { Pulse, FitnessAnimator, StatusAnimator } from "./animations/index.js";
6
- const AgentRow = memo(function AgentRow({ agent, tick }) {
6
+ const AgentRow = memo(function AgentRow({ agent, tick, compact }) {
7
7
  const statusInfo = useMemo(() => getStatusIndicator(agent.status), [agent.status]);
8
8
  const providerInfo = useMemo(() => getProviderTag(agent.provider), [agent.provider]);
9
- return (_jsxs(Box, { flexDirection: "row", children: [agent.status === "running" ? (_jsx(StatusAnimator, { status: "running", showLabel: false })) : (_jsx(Text, { color: statusInfo.color, children: statusInfo.icon })), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", agent.name.slice(0, 14).padEnd(14)] }), _jsxs(Text, { color: tuiColors.textTertiary, children: [" ", providerInfo.code] }), _jsxs(Text, { color: tuiColors.textSecondary, children: [" ", agent.status.toUpperCase().padEnd(8)] })] }));
9
+ return (_jsxs(Box, { flexDirection: "row", children: [agent.status === "running" ? (_jsx(StatusAnimator, { status: "running", showLabel: false })) : (_jsx(Text, { color: statusInfo.color, children: statusInfo.icon })), _jsxs(Text, { color: tuiColors.textPrimary, children: [" ", agent.name.slice(0, compact ? 10 : 14).padEnd(compact ? 10 : 14)] }), !compact && _jsxs(Text, { color: tuiColors.textTertiary, children: [" ", providerInfo.code] }), _jsxs(Text, { color: tuiColors.textSecondary, children: [" ", agent.status.toUpperCase().slice(0, compact ? 4 : 8).padEnd(compact ? 4 : 8)] })] }));
10
10
  });
11
- const ProviderRow = memo(function ProviderRow({ provider, tick }) {
11
+ const ProviderRow = memo(function ProviderRow({ provider, tick, compact }) {
12
12
  const isActive = provider.status === "active";
13
13
  const providerInfo = useMemo(() => getProviderTag(provider.name), [provider.name]);
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)] })] }));
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.slice(0, compact ? 8 : 12).padEnd(compact ? 8 : 12)] }), !compact && _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, maxHeight }) {
16
+ export const StatusPanel = memo(function StatusPanel({ agents, providers, fitness, currentWorkflow, isActive, tick = 0, maxHeight = 20, width = 30 }) {
17
17
  const borderColor = isActive ? tuiColors.primary : tuiColors.border;
18
- const maxAgents = maxHeight ? Math.max(2, Math.floor((maxHeight - 12) / 2)) : 4;
18
+ const compact = width < 25 || maxHeight < 15;
19
+ const maxAgents = Math.max(2, Math.floor((maxHeight - (compact ? 8 : 14)) / 2));
19
20
  const activeAgents = useMemo(() => agents.filter(a => a.status === "running" || a.status === "queued").slice(0, maxAgents), [agents, maxAgents]);
20
21
  const hasNoActiveAgents = activeAgents.length === 0;
21
- const workflowDisplay = useMemo(() => currentWorkflow ? `▶ ${currentWorkflow.slice(0, 20)}...` : "○ None", [currentWorkflow]);
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
+ const workflowDisplay = useMemo(() => currentWorkflow ? `▶ ${currentWorkflow.slice(0, compact ? 12 : 20)}...` : "○ None", [currentWorkflow, compact]);
23
+ const title = compact ? " STATUS " : " SYSTEM_STATUS ";
24
+ return (_jsxs(Box, { flexDirection: "column", width: width, 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: title }), _jsx(Text, { color: tuiColors.textTertiary, children: "─".repeat(Math.max(5, width - (compact ? 12 : 18))) })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, flexShrink: 0, children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: compact ? "HUB" : "ORCHESTRATOR" }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: tuiColors.textSecondary, children: compact ? "" : "Status:" }), _jsx(Text, { color: tuiColors.success, children: " " }), _jsx(Pulse, { interval: 600, color: tuiColors.success, type: "breath" }), _jsx(Text, { color: tuiColors.success, children: " ACTIVE" })] })] }), !compact && (_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: "AGENTS" }), activeAgents.map((agent) => (_jsx(AgentRow, { agent: agent, tick: tick, compact: compact }, agent.name))), hasNoActiveAgents && (_jsx(Text, { color: tuiColors.textQuaternary, children: " \u25CB All idle" }))] }), maxHeight > 12 && (_jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, overflow: "hidden", children: [_jsx(Text, { color: tuiColors.textTertiary, bold: true, children: "PROVIDERS" }), providers.slice(0, compact ? 2 : 4).map((provider) => (_jsx(ProviderRow, { provider: provider, tick: tick, compact: compact }, provider.name)))] }))] }));
23
25
  });
24
26
  //# 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":"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"}
@@ -0,0 +1,21 @@
1
+ export type LayoutMode = "full" | "compact" | "minimal";
2
+ export type ViewLayout = "split" | "single";
3
+ interface TerminalSize {
4
+ width: number;
5
+ height: number;
6
+ layoutMode: LayoutMode;
7
+ viewLayout: ViewLayout;
8
+ availableWidth: number;
9
+ availableHeight: number;
10
+ }
11
+ export declare function useTerminalSize(): TerminalSize;
12
+ export declare function calculatePanelWidths(layoutMode: LayoutMode, viewLayout: ViewLayout, availableWidth: number): {
13
+ chat: number;
14
+ dag: number;
15
+ logs: number;
16
+ metrics: number;
17
+ memory: number;
18
+ status: number;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=useTerminalSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTerminalSize.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useTerminalSize.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAQD,wBAAgB,eAAe,IAAI,YAAY,CAiD9C;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,GACrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAqCA"}
@@ -0,0 +1,87 @@
1
+ import { useState, useEffect } from "react";
2
+ const BREAKPOINTS = {
3
+ minimal: { width: 80, height: 20 },
4
+ compact: { width: 120, height: 28 },
5
+ full: { width: 160, height: 36 },
6
+ };
7
+ export function useTerminalSize() {
8
+ const [size, setSize] = useState({
9
+ width: 120,
10
+ height: 30,
11
+ layoutMode: "compact",
12
+ viewLayout: "split",
13
+ availableWidth: 116,
14
+ availableHeight: 22,
15
+ });
16
+ useEffect(() => {
17
+ const updateSize = () => {
18
+ const width = process.stdout.columns || 120;
19
+ const height = process.stdout.rows || 30;
20
+ let layoutMode;
21
+ if (width >= BREAKPOINTS.full.width && height >= BREAKPOINTS.full.height) {
22
+ layoutMode = "full";
23
+ }
24
+ else if (width >= BREAKPOINTS.compact.width && height >= BREAKPOINTS.compact.height) {
25
+ layoutMode = "compact";
26
+ }
27
+ else {
28
+ layoutMode = "minimal";
29
+ }
30
+ const viewLayout = width >= 100 ? "split" : "single";
31
+ const headerHeight = layoutMode === "full" ? 3 : 2;
32
+ const inputBarHeight = 2;
33
+ const availableHeight = Math.max(6, height - headerHeight - inputBarHeight);
34
+ const availableWidth = Math.max(40, width - 4);
35
+ setSize({
36
+ width,
37
+ height,
38
+ layoutMode,
39
+ viewLayout,
40
+ availableWidth,
41
+ availableHeight,
42
+ });
43
+ };
44
+ updateSize();
45
+ process.stdout.on("resize", updateSize);
46
+ return () => {
47
+ process.stdout.off("resize", updateSize);
48
+ };
49
+ }, []);
50
+ return size;
51
+ }
52
+ export function calculatePanelWidths(layoutMode, viewLayout, availableWidth) {
53
+ if (viewLayout === "single" || layoutMode === "minimal") {
54
+ return {
55
+ chat: availableWidth,
56
+ dag: availableWidth,
57
+ logs: availableWidth,
58
+ metrics: availableWidth,
59
+ memory: availableWidth,
60
+ status: availableWidth,
61
+ };
62
+ }
63
+ if (layoutMode === "compact") {
64
+ const panelWidth = Math.floor(availableWidth / 3);
65
+ return {
66
+ chat: panelWidth,
67
+ dag: panelWidth,
68
+ logs: panelWidth,
69
+ metrics: panelWidth,
70
+ memory: panelWidth,
71
+ status: panelWidth,
72
+ };
73
+ }
74
+ const chatWidth = Math.floor(availableWidth * 0.35);
75
+ const dagWidth = Math.floor(availableWidth * 0.25);
76
+ const logsWidth = Math.floor(availableWidth * 0.2);
77
+ const sideWidth = availableWidth - chatWidth - dagWidth - logsWidth;
78
+ return {
79
+ chat: chatWidth,
80
+ dag: dagWidth,
81
+ logs: logsWidth,
82
+ metrics: sideWidth,
83
+ memory: sideWidth,
84
+ status: Math.floor(availableWidth * 0.3),
85
+ };
86
+ }
87
+ //# sourceMappingURL=useTerminalSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTerminalSize.js","sourceRoot":"","sources":["../../../src/tui/hooks/useTerminalSize.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ranker/raxflow",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",