rax-flow 0.1.7 → 0.1.9

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 (56) hide show
  1. package/dist/tui/App.d.ts.map +1 -1
  2. package/dist/tui/App.js +43 -3
  3. package/dist/tui/App.js.map +1 -1
  4. package/dist/tui/components/ChatPanel.d.ts +2 -1
  5. package/dist/tui/components/ChatPanel.d.ts.map +1 -1
  6. package/dist/tui/components/ChatPanel.js +3 -2
  7. package/dist/tui/components/ChatPanel.js.map +1 -1
  8. package/dist/tui/components/DAGPanel.d.ts +24 -0
  9. package/dist/tui/components/DAGPanel.d.ts.map +1 -0
  10. package/dist/tui/components/DAGPanel.js +30 -0
  11. package/dist/tui/components/DAGPanel.js.map +1 -0
  12. package/dist/tui/components/Header.d.ts +3 -1
  13. package/dist/tui/components/Header.d.ts.map +1 -1
  14. package/dist/tui/components/Header.js +15 -3
  15. package/dist/tui/components/Header.js.map +1 -1
  16. package/dist/tui/components/HelpOverlay.d.ts +6 -0
  17. package/dist/tui/components/HelpOverlay.d.ts.map +1 -0
  18. package/dist/tui/components/HelpOverlay.js +42 -0
  19. package/dist/tui/components/HelpOverlay.js.map +1 -0
  20. package/dist/tui/components/LogsPanel.d.ts +7 -0
  21. package/dist/tui/components/LogsPanel.d.ts.map +1 -0
  22. package/dist/tui/components/LogsPanel.js +7 -0
  23. package/dist/tui/components/LogsPanel.js.map +1 -0
  24. package/dist/tui/components/MemoryPanel.d.ts +19 -0
  25. package/dist/tui/components/MemoryPanel.d.ts.map +1 -0
  26. package/dist/tui/components/MemoryPanel.js +24 -0
  27. package/dist/tui/components/MemoryPanel.js.map +1 -0
  28. package/dist/tui/components/MetricsPanel.d.ts +13 -0
  29. package/dist/tui/components/MetricsPanel.d.ts.map +1 -0
  30. package/dist/tui/components/MetricsPanel.js +14 -0
  31. package/dist/tui/components/MetricsPanel.js.map +1 -0
  32. package/dist/tui/components/StatusPanel.d.ts +2 -1
  33. package/dist/tui/components/StatusPanel.d.ts.map +1 -1
  34. package/dist/tui/components/StatusPanel.js +7 -6
  35. package/dist/tui/components/StatusPanel.js.map +1 -1
  36. package/dist/tui/hooks/useAppState.d.ts +24 -0
  37. package/dist/tui/hooks/useAppState.d.ts.map +1 -1
  38. package/dist/tui/hooks/useAppState.js +194 -43
  39. package/dist/tui/hooks/useAppState.js.map +1 -1
  40. package/dist/tui/services/orchestrator.d.ts +16 -0
  41. package/dist/tui/services/orchestrator.d.ts.map +1 -0
  42. package/dist/tui/services/orchestrator.js +108 -0
  43. package/dist/tui/services/orchestrator.js.map +1 -0
  44. package/package.json +1 -1
  45. package/src/tui/App.tsx +104 -19
  46. package/src/tui/components/ChatPanel.tsx +8 -4
  47. package/src/tui/components/DAGPanel.tsx +116 -0
  48. package/src/tui/components/Header.tsx +51 -19
  49. package/src/tui/components/HelpOverlay.tsx +83 -0
  50. package/src/tui/components/LogsPanel.tsx +37 -0
  51. package/src/tui/components/MemoryPanel.tsx +99 -0
  52. package/src/tui/components/MetricsPanel.tsx +108 -0
  53. package/src/tui/components/StatusPanel.tsx +13 -8
  54. package/src/tui/hooks/useAppState.ts +259 -44
  55. package/src/tui/services/orchestrator.ts +142 -0
  56. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAQA,wBAAgB,GAAG,4CAoDlB"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,GAAG,4CAgIlB"}
package/dist/tui/App.js CHANGED
@@ -1,13 +1,30 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
2
3
  import { Box, useApp, useInput } from "ink";
3
4
  import { Header } from "./components/Header.js";
4
5
  import { ChatPanel } from "./components/ChatPanel.js";
5
6
  import { StatusPanel } from "./components/StatusPanel.js";
7
+ import { DAGPanel } from "./components/DAGPanel.js";
8
+ import { LogsPanel } from "./components/LogsPanel.js";
9
+ import { MetricsPanel } from "./components/MetricsPanel.js";
10
+ import { MemoryPanel } from "./components/MemoryPanel.js";
6
11
  import { InputBar } from "./components/InputBar.js";
12
+ import { HelpOverlay } from "./components/HelpOverlay.js";
7
13
  import { useAppState } from "./hooks/useAppState.js";
14
+ const PANEL_ORDER = ["chat", "dag", "status", "logs", "metrics", "memory"];
8
15
  export function App() {
9
16
  const { exit } = useApp();
10
- const { state, dispatch, processCommand } = useAppState();
17
+ const { state, processCommand } = useAppState();
18
+ const [activePanel, setActivePanel] = useState("chat");
19
+ const [showHelp, setShowHelp] = useState(false);
20
+ const [tick, setTick] = useState(0);
21
+ const [viewMode, setViewMode] = useState("full");
22
+ useEffect(() => {
23
+ const interval = setInterval(() => {
24
+ setTick((t) => t + 1);
25
+ }, 100);
26
+ return () => clearInterval(interval);
27
+ }, []);
11
28
  useInput((input, key) => {
12
29
  if (key.ctrl && input === "c") {
13
30
  exit();
@@ -15,6 +32,25 @@ export function App() {
15
32
  if (key.ctrl && input === "d") {
16
33
  exit();
17
34
  }
35
+ if (key.escape) {
36
+ if (showHelp) {
37
+ setShowHelp(false);
38
+ }
39
+ }
40
+ if (input === "?" && !showHelp) {
41
+ setShowHelp(true);
42
+ return;
43
+ }
44
+ if (showHelp)
45
+ return;
46
+ if (key.tab) {
47
+ const currentIndex = PANEL_ORDER.indexOf(activePanel);
48
+ const nextIndex = (currentIndex + 1) % PANEL_ORDER.length;
49
+ setActivePanel(PANEL_ORDER[nextIndex]);
50
+ }
51
+ if (key.leftArrow) {
52
+ setViewMode(viewMode === "full" ? "compact" : "full");
53
+ }
18
54
  });
19
55
  const handleSubmit = (input) => {
20
56
  const trimmed = input.trim();
@@ -24,8 +60,12 @@ export function App() {
24
60
  exit();
25
61
  return;
26
62
  }
63
+ if (trimmed === "?" || trimmed === "/help") {
64
+ setShowHelp(!showHelp);
65
+ return;
66
+ }
27
67
  processCommand(trimmed);
28
68
  };
29
- return (_jsxs(Box, { flexDirection: "column", height: "100%", width: "100%", children: [_jsx(Header, { projectName: state.projectName, agentCount: state.agentCount, provider: state.provider, status: state.status }), _jsxs(Box, { flexGrow: 1, flexDirection: "row", width: "100%", children: [_jsx(ChatPanel, { messages: state.messages, isProcessing: state.isProcessing }), _jsx(StatusPanel, { agents: state.agents, providers: state.providers, fitness: state.fitness, currentWorkflow: state.currentWorkflow })] }), _jsx(InputBar, { onSubmit: handleSubmit, suggestions: state.suggestions, isProcessing: state.isProcessing })] }));
69
+ return (_jsxs(Box, { flexDirection: "column", height: "100%", width: "100%", children: [_jsx(Header, { projectName: state.projectName, agentCount: state.agentCount, provider: state.provider, status: state.status, tick: tick, activePanel: activePanel }), showHelp ? (_jsx(HelpOverlay, { onDismiss: () => setShowHelp(false) })) : (_jsxs(_Fragment, { children: [_jsxs(Box, { flexGrow: 1, flexDirection: "row", width: "100%", children: [_jsx(ChatPanel, { messages: state.messages, isProcessing: state.isProcessing, isActive: activePanel === "chat" }), _jsx(DAGPanel, { workflowState: state.workflowState, tick: tick, isActive: activePanel === "dag" }), viewMode === "full" && (_jsxs(_Fragment, { children: [_jsx(LogsPanel, { logs: state.logs, isActive: activePanel === "logs" }), _jsxs(Box, { flexDirection: "column", children: [_jsx(MetricsPanel, { metrics: state.metrics, fitness: state.fitness, isActive: activePanel === "metrics" }), _jsx(MemoryPanel, { nodes: [], edges: [], nodeCount: 247, cacheHitRate: 94, isActive: activePanel === "memory" })] })] })), viewMode === "compact" && (_jsx(StatusPanel, { agents: state.agents, providers: state.providers, fitness: state.fitness, currentWorkflow: state.currentWorkflow, isActive: activePanel === "status" }))] }), _jsx(InputBar, { onSubmit: handleSubmit, suggestions: state.suggestions, isProcessing: state.isProcessing })] }))] }));
30
70
  }
31
71
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;IAE1D,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC;QACT,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC7C,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,aACpD,KAAC,MAAM,IACL,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,MAAM,GACpB,EACF,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,aAChD,KAAC,SAAS,IACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,YAAY,EAAE,KAAK,CAAC,YAAY,GAChC,EACF,KAAC,WAAW,IACV,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,eAAe,EAAE,KAAK,CAAC,eAAe,GACtC,IACE,EACN,KAAC,QAAQ,IACP,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,YAAY,EAAE,KAAK,CAAC,YAAY,GAChC,IACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ interface Message {
8
8
  interface ChatPanelProps {
9
9
  messages: Message[];
10
10
  isProcessing: boolean;
11
+ isActive: boolean;
11
12
  }
12
- export declare function ChatPanel({ messages, isProcessing }: ChatPanelProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function ChatPanel({ messages, isProcessing, isActive }: ChatPanelProps): import("react/jsx-runtime").JSX.Element;
13
14
  export {};
14
15
  //# sourceMappingURL=ChatPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":"AAGA,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;CACvB;AAuCD,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,cAAc,2CAyBnE"}
1
+ {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":"AAGA,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;CACnB;AAuCD,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,cAAc,2CA4B7E"}
@@ -24,7 +24,8 @@ function MessageItem({ message }) {
24
24
  };
25
25
  return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: "gray", dimColor: true, children: ["[", formatTime(message.timestamp), "]"] }), _jsxs(Text, { color: typeColors[message.type], bold: true, children: [" [", typeLabels[message.type], "]"] }), message.agent && _jsxs(Text, { color: "gray", children: [" [", message.agent, "]"] })] }), _jsx(Text, { color: "white", children: message.content })] }));
26
26
  }
27
- export function ChatPanel({ messages, isProcessing }) {
28
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 2, borderStyle: "single", borderColor: "gray", paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "CHAT" }), _jsx(Text, { color: "gray", children: " \u2014 Tapez /help pour les commandes" })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [messages.slice(-15).map((msg) => (_jsx(MessageItem, { message: msg }, msg.id))), isProcessing && (_jsx(Box, { children: _jsx(Text, { color: "yellow", children: "\u25CF Processing..." }) }))] })] }));
27
+ export function ChatPanel({ messages, isProcessing, isActive }) {
28
+ const borderColor = isActive ? "#f97316" : "gray";
29
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 2, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "CHAT" }), _jsx(Text, { color: "gray", children: " \u2014 Tapez /help pour les commandes" }), isActive && _jsx(Text, { color: "yellow", children: " [ACTIF]" })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [messages.slice(-15).map((msg) => (_jsx(MessageItem, { message: msg }, msg.id))), isProcessing && (_jsx(Box, { children: _jsx(Text, { color: "yellow", children: "\u25CF Processing..." }) }))] })] }));
29
30
  }
30
31
  //# sourceMappingURL=ChatPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAY,MAAM,KAAK,CAAC;AAe1C,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACtC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,OAAO,EAAsC;IAClE,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;QAC/B,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,wBAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EACpE,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,yBAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAC/E,OAAO,CAAC,KAAK,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,mBAAI,OAAO,CAAC,KAAK,SAAS,IAC1D,EACN,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,OAAO,CAAC,OAAO,GAAQ,IACxC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAkB;IAClE,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,MAAM,EAClB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,aAC7D,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,2BAAY,EACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uDAAyC,IACvD,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,aACvD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAChC,KAAC,WAAW,IAAc,OAAO,EAAE,GAAG,IAApB,GAAG,CAAC,EAAE,CAAkB,CAC3C,CAAC,EACD,YAAY,IAAI,CACf,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,qCAAuB,GACvC,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ChatPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAgBhC,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACtC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,OAAO,EAAwB;IACpD,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;QAC/B,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,wBAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EACpE,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,yBAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAC/E,OAAO,CAAC,KAAK,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,mBAAI,OAAO,CAAC,KAAK,SAAS,IAC1D,EACN,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,OAAO,CAAC,OAAO,GAAQ,IACxC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAkB;IAC5E,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,aAC7D,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,2BAAY,EACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uDAAyC,EAC1D,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,yBAAgB,IAC7C,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,aACvD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAChC,KAAC,WAAW,IAAc,OAAO,EAAE,GAAG,IAApB,GAAG,CAAC,EAAE,CAAkB,CAC3C,CAAC,EACD,YAAY,IAAI,CACf,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,qCAAuB,GACvC,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ interface DAGNode {
2
+ id: string;
3
+ name: string;
4
+ status: "pending" | "running" | "done" | "error";
5
+ agent?: string;
6
+ }
7
+ interface DAGLevel {
8
+ name: string;
9
+ progress: number;
10
+ nodes: DAGNode[];
11
+ }
12
+ interface WorkflowState {
13
+ levels: DAGLevel[];
14
+ currentLevel: number;
15
+ totalProgress: number;
16
+ }
17
+ interface DAGPanelProps {
18
+ workflowState: WorkflowState;
19
+ tick: number;
20
+ isActive: boolean;
21
+ }
22
+ export declare function DAGPanel({ workflowState, tick, isActive }: DAGPanelProps): import("react/jsx-runtime").JSX.Element;
23
+ export {};
24
+ //# sourceMappingURL=DAGPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DAGPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/DAGPanel.tsx"],"names":[],"mappings":"AAGA,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;CAChB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,aAAa;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAuDD,wBAAgB,QAAQ,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAkCxE"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ const statusIcons = {
4
+ pending: { icon: "○", color: "gray" },
5
+ running: { icon: "▶", color: "yellow" },
6
+ done: { icon: "●", color: "green" },
7
+ error: { icon: "✗", color: "red" },
8
+ };
9
+ const spinnerFrames = ["◐", "◓", "◑", "◒"];
10
+ function ProgressBar({ progress, width = 20 }) {
11
+ const filled = Math.round((progress / 100) * width);
12
+ const empty = width - filled;
13
+ const bar = "█".repeat(filled) + "░".repeat(empty);
14
+ return (_jsx(Text, { color: progress >= 100 ? "green" : progress > 0 ? "yellow" : "gray", children: bar }));
15
+ }
16
+ function DAGNodeItem({ node, tick }) {
17
+ const { icon, color } = statusIcons[node.status];
18
+ const animatedIcon = node.status === "running"
19
+ ? spinnerFrames[tick % spinnerFrames.length]
20
+ : icon;
21
+ return (_jsxs(Box, { flexDirection: "row", marginLeft: 2, children: [_jsx(Text, { color: color, children: animatedIcon }), _jsxs(Text, { color: "white", children: [" ", node.name] }), node.agent && _jsxs(Text, { color: "gray", children: [" [", node.agent, "]"] })] }));
22
+ }
23
+ function DAGLevelView({ level, tick, isActive }) {
24
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: isActive ? "#f97316" : "gray", bold: isActive, children: level.name }), _jsx(Text, { color: "gray", children: " " }), _jsx(ProgressBar, { progress: level.progress, width: 12 }), _jsxs(Text, { color: "gray", children: [" ", level.progress, "%"] })] }), level.nodes.map((node) => (_jsx(DAGNodeItem, { node: node, tick: tick }, node.id)))] }));
25
+ }
26
+ export function DAGPanel({ workflowState, tick, isActive }) {
27
+ const borderColor = isActive ? "#f97316" : "gray";
28
+ return (_jsxs(Box, { flexDirection: "column", width: 40, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "DAG" }), _jsx(Text, { color: "gray", children: " EXECUTION" })] }), _jsx(Box, { flexDirection: "column", flexGrow: 1, children: workflowState.levels.map((level, index) => (_jsx(DAGLevelView, { level: level, tick: tick, isActive: index === workflowState.currentLevel }, level.name))) }), _jsxs(Box, { borderStyle: "single", borderColor: "gray", marginTop: 1, children: [_jsx(Text, { color: "gray", children: "Total: " }), _jsx(ProgressBar, { progress: workflowState.totalProgress, width: 10 }), _jsxs(Text, { color: "white", children: [" ", workflowState.totalProgress, "%"] })] })] }));
29
+ }
30
+ //# sourceMappingURL=DAGPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DAGPanel.js","sourceRoot":"","sources":["../../../src/tui/components/DAGPanel.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ interface HeaderProps {
3
3
  agentCount: number;
4
4
  provider: string;
5
5
  status: "ready" | "running" | "error";
6
+ tick: number;
7
+ activePanel: string;
6
8
  }
7
- export declare function Header({ projectName, agentCount, provider, status }: HeaderProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function Header({ projectName, agentCount, provider, status, tick, activePanel }: HeaderProps): import("react/jsx-runtime").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=Header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;CACvC;AAED,wBAAgB,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,2CA0ChF"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,wBAAgB,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,2CA8DnG"}
@@ -1,6 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
- export function Header({ projectName, agentCount, provider, status }) {
3
+ const spinnerFrames = ["◐", "◓", "◑", "◒"];
4
+ const panelNames = {
5
+ chat: "CHAT",
6
+ dag: "DAG",
7
+ status: "STATUS",
8
+ logs: "LOGS",
9
+ metrics: "METRICS",
10
+ memory: "MEMORY",
11
+ };
12
+ export function Header({ projectName, agentCount, provider, status, tick, activePanel }) {
4
13
  const statusColors = {
5
14
  ready: "green",
6
15
  running: "yellow",
@@ -11,7 +20,10 @@ export function Header({ projectName, agentCount, provider, status }) {
11
20
  running: "RUNNING",
12
21
  error: "ERROR",
13
22
  };
14
- const statusIcon = status === "running" ? "▶" : status === "error" ? "✗" : "●";
15
- return (_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", paddingX: 1, borderStyle: "single", borderColor: "gray", width: "100%", children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: "#f97316", bold: true, children: "\u25A0" }), _jsx(Text, { color: "white", bold: true, children: " RAX-FLOW" }), _jsx(Text, { color: "gray", children: " HUB" })] }), _jsxs(Box, { flexDirection: "row", alignItems: "center", gap: 2, children: [_jsx(Text, { color: "gray", children: "Project:" }), _jsx(Text, { color: "cyan", children: projectName }), _jsx(Text, { color: "gray", children: "\u2502" }), _jsx(Text, { color: "gray", children: "Agents:" }), _jsxs(Text, { color: "green", children: [agentCount, "/12"] }), _jsx(Text, { color: "gray", children: "\u2502" }), _jsxs(Text, { color: "gray", children: ["[", provider, "]"] }), _jsxs(Text, { color: statusColors[status], children: [" ", statusIcon, " ", statusText[status]] })] })] }));
23
+ const animatedStatus = status === "running"
24
+ ? spinnerFrames[tick % spinnerFrames.length]
25
+ : status === "error" ? "✗" : "●";
26
+ const panels = ["chat", "dag", "logs", "metrics", "memory"];
27
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "gray", width: "100%", children: [_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", alignItems: "center", paddingX: 1, children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: "#f97316", bold: true, children: "\u25A0" }), _jsx(Text, { color: "white", bold: true, children: " RAX-FLOW" }), _jsx(Text, { color: "gray", children: " HUB" })] }), _jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: "gray", children: "Project:" }), _jsxs(Text, { color: "cyan", children: [" ", projectName] }), _jsx(Text, { color: "gray", children: " \u2502 Agents:" }), _jsxs(Text, { color: "green", children: [" ", agentCount, "/12"] }), _jsxs(Text, { color: "gray", children: [" \u2502 [", provider, "]"] }), _jsxs(Text, { color: statusColors[status], children: [" ", animatedStatus, " ", statusText[status]] })] })] }), _jsxs(Box, { flexDirection: "row", paddingX: 1, justifyContent: "space-between", children: [_jsx(Box, { flexDirection: "row", children: panels.map((panel) => (_jsx(Box, { marginRight: 1, children: _jsxs(Text, { color: activePanel === panel ? "#f97316" : "gray", bold: activePanel === panel, children: ["[", panelNames[panel], "]"] }) }, panel))) }), _jsx(Box, { flexDirection: "row", children: _jsx(Text, { color: "gray", children: "Tab: Switch \u2502 \u2190: Toggle view \u2502 ?: Help \u2502 Ctrl+C: Quit" }) })] })] }));
16
28
  }
17
29
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC,MAAM,UAAU,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAe;IAC/E,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;KACf,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE/E,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,KAAK,EACnB,cAAc,EAAC,eAAe,EAC9B,UAAU,EAAC,QAAQ,EACnB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,MAAM,EAClB,KAAK,EAAC,MAAM,aAEZ,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,6BAAS,EACnC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,gCAAiB,EACzC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,qBAAY,IAC1B,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aACjD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,yBAAgB,EAClC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,WAAW,GAAQ,EACvC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,EAC3B,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wBAAe,EACjC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aAAE,UAAU,WAAW,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAG,QAAQ,SAAS,EACtC,MAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,kBAAI,UAAU,OAAG,UAAU,CAAC,MAAM,CAAC,IAAQ,IACxE,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/tui/components/Header.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ interface HelpOverlayProps {
2
+ onDismiss: () => void;
3
+ }
4
+ export declare function HelpOverlay({ onDismiss }: HelpOverlayProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=HelpOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpOverlay.d.ts","sourceRoot":"","sources":["../../../src/tui/components/HelpOverlay.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CA2E1D"}
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text, useInput } from "ink";
3
+ export function HelpOverlay({ onDismiss }) {
4
+ useInput((input, key) => {
5
+ if (key.escape || input === "q") {
6
+ onDismiss();
7
+ }
8
+ });
9
+ const sections = [
10
+ {
11
+ title: "COMMANDES",
12
+ items: [
13
+ ["/run <prompt>", "Exécuter un workflow"],
14
+ ["/status", "État du système"],
15
+ ["/agents", "Liste des agents"],
16
+ ["/providers", "Liste des providers"],
17
+ ["/workflows", "Blueprints disponibles"],
18
+ ["/help, ?", "Cette aide"],
19
+ ["/exit", "Quitter"],
20
+ ],
21
+ },
22
+ {
23
+ title: "NAVIGATION",
24
+ items: [
25
+ ["Tab", "Changer de panel actif"],
26
+ ["F1-F8", "Aller au panel spécifique"],
27
+ ["Ctrl+C", "Quitter"],
28
+ ["Esc", "Fermer l'aide"],
29
+ ],
30
+ },
31
+ {
32
+ title: "PANELS",
33
+ items: [
34
+ ["CHAT", "Messages et interaction"],
35
+ ["DAG", "Visualisation du workflow"],
36
+ ["STATUS", "Agents et providers"],
37
+ ],
38
+ },
39
+ ];
40
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "double", borderColor: "#f97316", paddingX: 2, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "\u25A0 RAX-FLOW HELP" }), _jsx(Text, { color: "gray", children: " \u2014 [Esc] pour fermer" })] }), _jsx(Box, { flexDirection: "row", flexGrow: 1, children: sections.map((section) => (_jsxs(Box, { flexDirection: "column", width: 30, children: [_jsx(Text, { color: "gray", bold: true, underline: true, children: section.title }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: section.items.map(([cmd, desc]) => (_jsxs(Box, { flexDirection: "row", marginBottom: 1, children: [_jsx(Text, { color: "cyan", children: cmd.padEnd(16) }), _jsx(Text, { color: "white", children: desc })] }, cmd))) })] }, section.title))) }), _jsx(Box, { borderStyle: "single", borderColor: "gray", marginTop: 1, children: _jsx(Text, { color: "gray", children: "Pour ex\u00E9cuter un workflow, tapez simplement votre prompt ou /run \"...\"" }) })] }));
41
+ }
42
+ //# sourceMappingURL=HelpOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpOverlay.js","sourceRoot":"","sources":["../../../src/tui/components/HelpOverlay.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAM1C,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAoB;IACzD,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAChC,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG;QACf;YACE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE;gBACL,CAAC,eAAe,EAAE,sBAAsB,CAAC;gBACzC,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBAC9B,CAAC,SAAS,EAAE,kBAAkB,CAAC;gBAC/B,CAAC,YAAY,EAAE,qBAAqB,CAAC;gBACrC,CAAC,YAAY,EAAE,wBAAwB,CAAC;gBACxC,CAAC,UAAU,EAAE,YAAY,CAAC;gBAC1B,CAAC,OAAO,EAAE,SAAS,CAAC;aACrB;SACF;QACD;YACE,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE;gBACL,CAAC,KAAK,EAAE,wBAAwB,CAAC;gBACjC,CAAC,OAAO,EAAE,2BAA2B,CAAC;gBACtC,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACrB,CAAC,KAAK,EAAE,eAAe,CAAC;aACzB;SACF;QACD;YACE,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL,CAAC,MAAM,EAAE,yBAAyB,CAAC;gBACnC,CAAC,KAAK,EAAE,2BAA2B,CAAC;gBACpC,CAAC,QAAQ,EAAE,qBAAqB,CAAC;aAClC;SACF;KACF,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,SAAS,EACrB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,2CAAuB,EACjD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,0CAA4B,IAC1C,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,YACjC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,MAAC,GAAG,IAAqB,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,aACvD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,QAAC,SAAS,kBAC9B,OAAO,CAAC,KAAK,GACT,EACP,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAClC,MAAC,GAAG,IAAW,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC,aAChD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,IAAI,GAAQ,KAFzB,GAAG,CAGP,CACP,CAAC,GACE,KAXE,OAAO,CAAC,KAAK,CAYjB,CACP,CAAC,GACE,EAEN,KAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,SAAS,EAAE,CAAC,YACvD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,8FAA8E,GAC5F,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface LogsPanelProps {
2
+ logs: string[];
3
+ isActive: boolean;
4
+ }
5
+ export declare function LogsPanel({ logs, isActive }: LogsPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=LogsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogsPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,2CA4B3D"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ export function LogsPanel({ logs, isActive }) {
4
+ const borderColor = isActive ? "#f97316" : "gray";
5
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "LOGS" }), _jsx(Text, { color: "gray", children: " STREAM" }), isActive && _jsx(Text, { color: "yellow", children: " [ACTIF]" })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: [logs.slice(-12).map((log, index) => (_jsx(Text, { color: "white", wrap: "truncate", children: log }, index))), logs.length === 0 && (_jsx(Text, { color: "gray", children: "Aucun log. Lancez un workflow pour voir les logs." }))] })] }));
6
+ }
7
+ //# sourceMappingURL=LogsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/LogsPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAkB;IAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,aAC7D,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,2BAAY,EACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wBAAe,EAChC,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,yBAAgB,IAC7C,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,aACvD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,KAAC,IAAI,IAAa,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,UAAU,YAC5C,GAAG,IADK,KAAK,CAET,CACR,CAAC,EACD,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CACpB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kEAAyD,CAC5E,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ interface MemoryNode {
2
+ id: string;
3
+ type: string;
4
+ label: string;
5
+ }
6
+ interface MemoryEdge {
7
+ from: string;
8
+ to: string;
9
+ }
10
+ interface MemoryPanelProps {
11
+ nodes: MemoryNode[];
12
+ edges: MemoryEdge[];
13
+ nodeCount: number;
14
+ cacheHitRate: number;
15
+ isActive: boolean;
16
+ }
17
+ export declare function MemoryPanel({ nodes, edges, nodeCount, cacheHitRate, isActive }: MemoryPanelProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=MemoryPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":"AAGA,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAeD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA+DhG"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ const DEFAULT_NODES = [
4
+ { id: "1", type: "action", label: "code_gen" },
5
+ { id: "2", type: "file", label: "auth.ts" },
6
+ { id: "3", type: "task", label: "login" },
7
+ { id: "4", type: "test", label: "auth.test" },
8
+ ];
9
+ const DEFAULT_EDGES = [
10
+ { from: "1", to: "2" },
11
+ { from: "2", to: "3" },
12
+ { from: "3", to: "4" },
13
+ ];
14
+ export function MemoryPanel({ nodes, edges, nodeCount, cacheHitRate, isActive }) {
15
+ const borderColor = isActive ? "#f97316" : "gray";
16
+ const displayNodes = nodes.length > 0 ? nodes : DEFAULT_NODES;
17
+ const displayEdges = edges.length > 0 ? edges : DEFAULT_EDGES;
18
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "MEMORY" }), _jsx(Text, { color: "gray", children: " QSGM" }), isActive && _jsx(Text, { color: "yellow", children: " [ACTIF]" })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "gray", bold: true, children: "QUANTUM SEMANTIC GRAPH" }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: "white", children: "Nodes: " }), _jsx(Text, { color: "cyan", bold: true, children: nodeCount }), _jsx(Text, { color: "gray", children: " \u2502 Cache: " }), _jsxs(Text, { color: "green", children: [cacheHitRate, "%"] })] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "RECENT NODES" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: displayNodes.slice(0, 5).map((node) => (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: "gray", children: ["[", node.type, "]"] }), _jsxs(Text, { color: "white", children: [" ", node.label] })] }, node.id))) })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "CONNECTIONS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: displayEdges.slice(0, 4).map((edge, i) => {
19
+ const fromNode = displayNodes.find((n) => n.id === edge.from);
20
+ const toNode = displayNodes.find((n) => n.id === edge.to);
21
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: fromNode?.label || "?" }), _jsx(Text, { color: "#f97316", children: " \u2500\u2500\u25B6 " }), _jsx(Text, { color: "white", children: toNode?.label || "?" })] }, i));
22
+ }) })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "gray", dimColor: true, children: ["Mutations this session: +", Math.floor(Math.random() * 4)] }) })] }));
23
+ }
24
+ //# sourceMappingURL=MemoryPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MemoryPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAqBhC,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;CAC9C,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;CACvB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAoB;IAC/F,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IAE9D,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,aAC7D,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,6BAAc,EACxC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,sBAAa,EAC9B,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,yBAAgB,IAC7C,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,6CAA8B,EACrD,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,aACnC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAe,EAClC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,kBAAE,SAAS,GAAQ,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,gCAAkB,EACpC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aAAE,YAAY,SAAS,IACtC,IACF,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,mCAAoB,EAC3C,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACtC,MAAC,GAAG,IAAe,aAAa,EAAC,KAAK,aACpC,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAG,IAAI,CAAC,IAAI,SAAS,EACvC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,kBAAG,IAAI,CAAC,KAAK,IAAQ,KAFhC,IAAI,CAAC,EAAE,CAGX,CACP,CAAC,GACE,IACF,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,kCAAmB,EAC1C,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC1D,OAAO,CACL,MAAC,GAAG,IAAS,aAAa,EAAC,KAAK,aAC9B,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,QAAQ,EAAE,KAAK,IAAI,GAAG,GAAQ,EACnD,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,qCAAa,EAClC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,MAAM,EAAE,KAAK,IAAI,GAAG,GAAQ,KAHzC,CAAC,CAIL,CACP,CAAC;wBACJ,CAAC,CAAC,GACE,IACF,EAEN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,gDAA2B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAQ,GACvF,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ interface MetricsPanelProps {
2
+ metrics: {
3
+ sessions: number;
4
+ avgDuration: number;
5
+ successRate: number;
6
+ totalCost: number;
7
+ };
8
+ fitness: number;
9
+ isActive: boolean;
10
+ }
11
+ export declare function MetricsPanel({ metrics, fitness, isActive }: MetricsPanelProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=MetricsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MetricsPanel.tsx"],"names":[],"mappings":"AAGA,UAAU,iBAAiB;IACzB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAcD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAiF7E"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ function ProgressBar({ value, max, width = 16 }) {
4
+ const percent = Math.min((value / max) * 100, 100);
5
+ const filled = Math.round((percent / 100) * width);
6
+ const empty = width - filled;
7
+ const bar = "█".repeat(filled) + "░".repeat(empty);
8
+ return (_jsx(Text, { color: percent >= 80 ? "green" : percent >= 50 ? "yellow" : "red", children: bar }));
9
+ }
10
+ export function MetricsPanel({ metrics, fitness, isActive }) {
11
+ const borderColor = isActive ? "#f97316" : "gray";
12
+ return (_jsxs(Box, { flexDirection: "column", width: 30, borderStyle: "single", borderColor: borderColor, paddingX: 1, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "METRICS" }), isActive && _jsx(Text, { color: "yellow", children: " [ACTIF]" })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "gray", bold: true, children: "PERFORMANCE" }), _jsxs(Box, { flexDirection: "row", marginTop: 1, children: [_jsx(Text, { color: "white", children: "Sessions: " }), _jsx(Text, { color: "cyan", bold: true, children: metrics.sessions })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: "Duration: " }), _jsxs(Text, { color: "cyan", children: [metrics.avgDuration, "ms"] })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: "Success: " }), _jsxs(Text, { color: "green", children: [metrics.successRate, "%"] }), _jsx(Text, { color: "gray", children: " " }), _jsx(ProgressBar, { value: metrics.successRate, max: 100, width: 8 })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: "Cost: " }), _jsxs(Text, { color: "yellow", children: ["$", metrics.totalCost.toFixed(4)] })] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "FITNESS" }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: fitness >= 0.9 ? "green" : fitness >= 0.7 ? "yellow" : "red", bold: true, children: fitness.toFixed(2) }), _jsx(Text, { color: "gray", children: " " }), _jsx(ProgressBar, { value: fitness, max: 1, width: 12 })] }), _jsx(Text, { color: "gray", children: fitness >= 0.9 ? "[OPTIMAL]" : fitness >= 0.7 ? "[GOOD]" : "[IMPROVING]" })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "TOP AGENTS" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: "CodeGenerator" }), _jsx(Text, { color: "gray", children: " " }), _jsx(ProgressBar, { value: 45, max: 100, width: 8 }), _jsx(Text, { color: "gray", children: " 45%" })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: "TestAgent" }), _jsx(Text, { color: "gray", children: " " }), _jsx(ProgressBar, { value: 32, max: 100, width: 8 }), _jsx(Text, { color: "gray", children: " 32%" })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "white", children: "FixAgent" }), _jsx(Text, { color: "gray", children: " " }), _jsx(ProgressBar, { value: 18, max: 100, width: 8 }), _jsx(Text, { color: "gray", children: " 18%" })] })] })] })] }));
13
+ }
14
+ //# sourceMappingURL=MetricsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsPanel.js","sourceRoot":"","sources":["../../../src/tui/components/MetricsPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAahC,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAkD;IAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,YACpE,GAAG,GACC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAqB;IAC5E,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,EAAE,EACT,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,aAC7D,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,8BAAe,EACxC,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,yBAAgB,IAC7C,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,kCAAmB,EAE1C,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,aACnC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,2BAAkB,EACrC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,kBAAE,OAAO,CAAC,QAAQ,GAAQ,IAC7C,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,2BAAkB,EACrC,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aAAE,OAAO,CAAC,WAAW,UAAU,IAC7C,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,0BAAiB,EACpC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aAAE,OAAO,CAAC,WAAW,SAAS,EACjD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,KAAC,WAAW,IAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAI,IAC3D,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAc,EACjC,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,kBAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAQ,IACvD,IACF,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,8BAAe,EACtC,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,kBAC5E,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GACd,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,KAAC,WAAW,IAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAI,IAC9C,EACN,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YACf,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,GACpE,IACH,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,iCAAkB,EACzC,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,8BAAqB,EACxC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,KAAC,WAAW,IAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAI,EAC9C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,qBAAY,IAC1B,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,0BAAiB,EACpC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,KAAC,WAAW,IAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAI,EAC9C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,qBAAY,IAC1B,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,yBAAgB,EACnC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,KAAC,WAAW,IAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAI,EAC9C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,qBAAY,IAC1B,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -14,7 +14,8 @@ interface StatusPanelProps {
14
14
  providers: Provider[];
15
15
  fitness: number;
16
16
  currentWorkflow: string | null;
17
+ isActive: boolean;
17
18
  }
18
- export declare function StatusPanel({ agents, providers, fitness, currentWorkflow }: StatusPanelProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function StatusPanel({ agents, providers, fitness, currentWorkflow, isActive }: StatusPanelProps): import("react/jsx-runtime").JSX.Element;
19
20
  export {};
20
21
  //# sourceMappingURL=StatusPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusPanel.tsx"],"names":[],"mappings":"AAGA,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;CAChC;AAgCD,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,gBAAgB,2CA+B5F"}
1
+ {"version":3,"file":"StatusPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusPanel.tsx"],"names":[],"mappings":"AAGA,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;CACnB;AAgCD,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAmCtG"}
@@ -6,15 +6,16 @@ const statusIcons = {
6
6
  queued: { icon: "◐", color: "cyan" },
7
7
  done: { icon: "●", color: "green" },
8
8
  };
9
- function AgentRow({ agent, key }) {
9
+ function AgentRow({ agent }) {
10
10
  const { icon, color } = statusIcons[agent.status];
11
- return (_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [_jsx(Text, { color: color, children: icon }), _jsx(Text, { color: "white", children: agent.name.slice(0, 12).padEnd(12) }), _jsxs(Text, { color: "gray", children: ["[", agent.provider, "]"] })] }, key));
11
+ return (_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [_jsx(Text, { color: color, children: icon }), _jsx(Text, { color: "white", children: agent.name.slice(0, 12).padEnd(12) }), _jsxs(Text, { color: "gray", children: ["[", agent.provider, "]"] })] }));
12
12
  }
13
- function ProviderRow({ provider, key }) {
14
- return (_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [_jsx(Text, { color: provider.status === "active" ? "green" : "gray", children: provider.status === "active" ? "●" : "○" }), _jsx(Text, { color: "white", children: provider.name }), _jsx(Text, { color: "gray", children: provider.latency > 0 ? `${provider.latency}ms` : "--" })] }, key));
13
+ function ProviderRow({ provider }) {
14
+ return (_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [_jsx(Text, { color: provider.status === "active" ? "green" : "gray", children: provider.status === "active" ? "●" : "○" }), _jsx(Text, { color: "white", children: provider.name }), _jsx(Text, { color: "gray", children: provider.latency > 0 ? `${provider.latency}ms` : "--" })] }));
15
15
  }
16
- export function StatusPanel({ agents, providers, fitness, currentWorkflow }) {
16
+ export function StatusPanel({ agents, providers, fitness, currentWorkflow, isActive }) {
17
17
  const fitnessColor = fitness >= 0.9 ? "green" : fitness >= 0.7 ? "yellow" : "red";
18
- return (_jsxs(Box, { flexDirection: "column", width: 35, borderStyle: "single", borderColor: "gray", children: [_jsx(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: _jsx(Text, { color: "#f97316", bold: true, children: "STATUS" }) }), _jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "WORKFLOW" }), _jsx(Text, { color: "white", children: currentWorkflow || "Aucun" }), _jsx(Text, { color: "gray", children: "Fitness: " }), _jsx(Text, { color: fitnessColor, bold: true, children: fitness.toFixed(2) })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "AGENTS" }), agents.slice(0, 6).map((agent) => (_jsx(AgentRow, { agent: agent }, agent.name)))] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "PROVIDERS" }), providers.map((provider) => (_jsx(ProviderRow, { provider: provider }, provider.name)))] })] }));
18
+ const borderColor = isActive ? "#f97316" : "gray";
19
+ return (_jsxs(Box, { flexDirection: "column", width: 30, borderStyle: "single", borderColor: borderColor, children: [_jsxs(Box, { borderStyle: "single", borderColor: "#f97316", marginBottom: 1, children: [_jsx(Text, { color: "#f97316", bold: true, children: "STATUS" }), isActive && _jsx(Text, { color: "yellow", children: " [ACTIF]" })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "WORKFLOW" }), _jsx(Text, { color: "white", children: currentWorkflow || "Aucun" }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "gray", children: "Fitness: " }), _jsx(Text, { color: fitnessColor, bold: true, children: fitness.toFixed(2) })] })] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "AGENTS" }), agents.slice(0, 6).map((agent) => (_jsx(AgentRow, { agent: agent }, agent.name)))] }), _jsxs(Box, { flexDirection: "column", paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: "gray", bold: true, children: "PROVIDERS" }), providers.map((provider) => (_jsx(ProviderRow, { provider: provider }, provider.name)))] })] }));
19
20
  }
20
21
  //# 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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"}
@@ -16,6 +16,22 @@ interface Provider {
16
16
  status: "active" | "idle";
17
17
  latency: number;
18
18
  }
19
+ interface DAGNode {
20
+ id: string;
21
+ name: string;
22
+ status: "pending" | "running" | "done" | "error";
23
+ agent?: string;
24
+ }
25
+ interface DAGLevel {
26
+ name: string;
27
+ progress: number;
28
+ nodes: DAGNode[];
29
+ }
30
+ interface WorkflowState {
31
+ levels: DAGLevel[];
32
+ currentLevel: number;
33
+ totalProgress: number;
34
+ }
19
35
  interface AppState {
20
36
  projectName: string;
21
37
  agentCount: number;
@@ -28,6 +44,14 @@ interface AppState {
28
44
  currentWorkflow: string | null;
29
45
  suggestions: string[];
30
46
  isProcessing: boolean;
47
+ workflowState: WorkflowState;
48
+ logs: string[];
49
+ metrics: {
50
+ sessions: number;
51
+ avgDuration: number;
52
+ successRate: number;
53
+ totalCost: number;
54
+ };
31
55
  }
32
56
  export declare function useAppState(): {
33
57
  state: AppState;