@gxp-dev/tools 2.0.11 → 2.0.13

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.
@@ -1,40 +1,57 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState, useMemo, useEffect } from 'react';
2
+ import React, { useState, useMemo, useEffect, useCallback, useRef } from 'react';
3
3
  import { Box, Text, useInput } from 'ink';
4
4
  import TextInput from 'ink-text-input';
5
- // Command definitions with descriptions
5
+ // Command definitions with descriptions - comprehensive list
6
6
  const COMMANDS = [
7
- { cmd: '/dev', args: '', desc: 'Start Vite (+ Socket if SOCKET_IO_ENABLED)' },
7
+ // Dev server commands
8
+ { cmd: '/dev', args: '', desc: 'Start Vite dev server' },
8
9
  { cmd: '/dev', args: '--with-socket', desc: 'Start Vite + Socket.IO' },
9
- { cmd: '/dev', args: '--with-mock', desc: 'Start Vite + Socket.IO + Mock API server' },
10
- { cmd: '/dev', args: '--firefox', desc: 'Start Vite + Firefox extension' },
11
- { cmd: '/dev', args: '--chrome', desc: 'Start Vite + Chrome extension' },
12
- { cmd: '/dev', args: '--no-socket', desc: 'Start Vite without Socket.IO' },
10
+ { cmd: '/dev', args: '--with-mock', desc: 'Start Vite + Socket.IO + Mock API' },
13
11
  { cmd: '/dev', args: '--no-https', desc: 'Start Vite without SSL' },
12
+ { cmd: '/dev', args: '--no-socket', desc: 'Start Vite without Socket.IO' },
13
+ { cmd: '/dev', args: '--chrome', desc: 'Start Vite + Chrome extension' },
14
+ { cmd: '/dev', args: '--firefox', desc: 'Start Vite + Firefox extension' },
15
+ // Socket commands
14
16
  { cmd: '/socket', args: '', desc: 'Start Socket.IO server' },
15
- { cmd: '/socket', args: 'send <event>', desc: 'Send socket event' },
16
- { cmd: '/socket', args: 'list', desc: 'List available events' },
17
- { cmd: '/ext', args: 'chrome', desc: 'Launch Chrome extension' },
18
- { cmd: '/ext', args: 'firefox', desc: 'Launch Firefox extension' },
19
- { cmd: '/stop', args: '[service]', desc: 'Stop current/specified service' },
20
- { cmd: '/restart', args: '[service]', desc: 'Restart current/specified service' },
17
+ { cmd: '/socket', args: '--with-mock', desc: 'Start Socket.IO + Mock API' },
18
+ { cmd: '/socket', args: 'send <event>', desc: 'Send a socket event' },
19
+ { cmd: '/socket', args: 'list', desc: 'List available socket events' },
20
+ { cmd: '/mock', args: '', desc: 'Start Socket.IO + Mock API (shorthand)' },
21
+ // Browser extension commands
22
+ { cmd: '/ext', args: 'chrome', desc: 'Launch Chrome with extension' },
23
+ { cmd: '/ext', args: 'firefox', desc: 'Launch Firefox with extension' },
24
+ // Service management
25
+ { cmd: '/stop', args: '[service]', desc: 'Stop current or specified service' },
26
+ { cmd: '/restart', args: '[service]', desc: 'Restart current or specified service' },
21
27
  { cmd: '/clear', args: '', desc: 'Clear current log panel' },
22
- { cmd: '/gemini', args: '', desc: 'Open Gemini AI chat' },
23
- { cmd: '/gemini', args: 'enable', desc: 'Set up Google auth' },
28
+ // Config extraction
29
+ { cmd: '/extract-config', args: '', desc: 'Extract GxP config from source' },
30
+ { cmd: '/extract-config', args: '--dry-run', desc: 'Preview config extraction' },
31
+ { cmd: '/extract-config', args: '--overwrite', desc: 'Overwrite existing config values' },
32
+ // AI commands
33
+ { cmd: '/gemini', args: '', desc: 'Open Gemini AI chat panel' },
34
+ { cmd: '/gemini', args: 'enable', desc: 'Set up Google authentication' },
24
35
  { cmd: '/gemini', args: 'ask <query>', desc: 'Quick AI question' },
36
+ { cmd: '/gemini', args: 'status', desc: 'Check AI auth status' },
37
+ { cmd: '/gemini', args: 'logout', desc: 'Log out from Gemini' },
38
+ { cmd: '/gemini', args: 'clear', desc: 'Clear conversation history' },
39
+ { cmd: '/ai', args: '', desc: 'Open Gemini AI chat (alias)' },
40
+ // General
25
41
  { cmd: '/help', args: '', desc: 'Show all commands' },
26
42
  { cmd: '/quit', args: '', desc: 'Exit application' },
43
+ { cmd: '/exit', args: '', desc: 'Exit application (alias)' },
27
44
  ];
28
45
  export default function CommandInput({ onSubmit, activeService, onSuggestionsChange }) {
29
- const [value, setValue] = useState(''); // The actual typed value (for filtering)
30
- const [displayValue, setDisplayValue] = useState(''); // What's shown in input (may differ when navigating)
31
- const [isNavigating, setIsNavigating] = useState(false); // Track if user is arrowing through suggestions
46
+ const [value, setValue] = useState('');
32
47
  const [history, setHistory] = useState([]);
33
48
  const [historyIndex, setHistoryIndex] = useState(-1);
34
49
  const [selectedSuggestion, setSelectedSuggestion] = useState(0);
35
- // Key to force TextInput remount when value is set programmatically (resets cursor)
36
- const [inputKey, setInputKey] = useState(0);
37
- // Filter commands based on the TYPED value (not display value)
50
+ // Use ref to track if we should skip the next onChange (after programmatic update)
51
+ const skipNextChange = useRef(false);
52
+ // Track previous suggestion count to avoid unnecessary parent updates
53
+ const prevSuggestionCount = useRef(0);
54
+ // Filter commands based on typed value
38
55
  const suggestions = useMemo(() => {
39
56
  if (!value.startsWith('/'))
40
57
  return [];
@@ -43,11 +60,11 @@ export default function CommandInput({ onSubmit, activeService, onSuggestionsCha
43
60
  const fullCmd = c.args ? `${c.cmd} ${c.args}` : c.cmd;
44
61
  return fullCmd.toLowerCase().includes(search) ||
45
62
  c.cmd.toLowerCase().startsWith(search);
46
- });
63
+ }).slice(0, 8); // Limit to 8 suggestions for cleaner UI
47
64
  }, [value]);
48
65
  const showSuggestions = value.startsWith('/') && value.length >= 1 && suggestions.length > 0;
49
66
  // Helper to build full command string from suggestion
50
- const buildFullCommand = (suggestion) => {
67
+ const buildFullCommand = useCallback((suggestion) => {
51
68
  if (suggestion.args) {
52
69
  const hasPlaceholder = suggestion.args.includes('<') || suggestion.args.includes('[');
53
70
  if (!hasPlaceholder) {
@@ -55,52 +72,39 @@ export default function CommandInput({ onSubmit, activeService, onSuggestionsCha
55
72
  }
56
73
  }
57
74
  return suggestion.cmd;
58
- };
59
- // Notify parent when suggestions change (for layout adjustment)
75
+ }, []);
76
+ // Notify parent when suggestions change (debounced to reduce flicker)
60
77
  useEffect(() => {
61
- if (onSuggestionsChange) {
62
- // +2 for border and help text row
63
- onSuggestionsChange(showSuggestions ? suggestions.length + 2 : 0);
78
+ const count = showSuggestions ? suggestions.length + 2 : 0;
79
+ if (count !== prevSuggestionCount.current) {
80
+ prevSuggestionCount.current = count;
81
+ onSuggestionsChange?.(count);
64
82
  }
65
83
  }, [showSuggestions, suggestions.length, onSuggestionsChange]);
84
+ // Reset selected suggestion when suggestions change
85
+ useEffect(() => {
86
+ if (selectedSuggestion >= suggestions.length) {
87
+ setSelectedSuggestion(Math.max(0, suggestions.length - 1));
88
+ }
89
+ }, [suggestions.length, selectedSuggestion]);
66
90
  useInput((input, key) => {
67
- // Tab to autocomplete selected suggestion (commits the selection)
91
+ // Tab to autocomplete selected suggestion
68
92
  if (key.tab && showSuggestions && suggestions[selectedSuggestion]) {
69
93
  const suggestion = suggestions[selectedSuggestion];
70
94
  const fullCmd = buildFullCommand(suggestion);
71
- // Commit to both value and displayValue
95
+ skipNextChange.current = true;
72
96
  setValue(fullCmd);
73
- setDisplayValue(fullCmd);
74
97
  setSelectedSuggestion(0);
75
- setIsNavigating(false);
76
- // Increment key to force TextInput remount (resets cursor to end)
77
- setInputKey(k => k + 1);
78
98
  return;
79
99
  }
80
100
  // Up/Down to navigate suggestions when showing
81
101
  if (showSuggestions) {
82
102
  if (key.upArrow) {
83
- const newIndex = Math.max(0, selectedSuggestion - 1);
84
- setSelectedSuggestion(newIndex);
85
- setIsNavigating(true);
86
- // Update display value to show highlighted command
87
- const suggestion = suggestions[newIndex];
88
- if (suggestion) {
89
- setDisplayValue(buildFullCommand(suggestion));
90
- setInputKey(k => k + 1);
91
- }
103
+ setSelectedSuggestion(prev => Math.max(0, prev - 1));
92
104
  return;
93
105
  }
94
106
  if (key.downArrow) {
95
- const newIndex = Math.min(suggestions.length - 1, selectedSuggestion + 1);
96
- setSelectedSuggestion(newIndex);
97
- setIsNavigating(true);
98
- // Update display value to show highlighted command
99
- const suggestion = suggestions[newIndex];
100
- if (suggestion) {
101
- setDisplayValue(buildFullCommand(suggestion));
102
- setInputKey(k => k + 1);
103
- }
107
+ setSelectedSuggestion(prev => Math.min(suggestions.length - 1, prev + 1));
104
108
  return;
105
109
  }
106
110
  }
@@ -109,72 +113,66 @@ export default function CommandInput({ onSubmit, activeService, onSuggestionsCha
109
113
  if (key.upArrow && history.length > 0) {
110
114
  const newIndex = Math.min(historyIndex + 1, history.length - 1);
111
115
  setHistoryIndex(newIndex);
112
- const histVal = history[history.length - 1 - newIndex] || '';
113
- setValue(histVal);
114
- setDisplayValue(histVal);
115
- setInputKey(k => k + 1);
116
+ skipNextChange.current = true;
117
+ setValue(history[history.length - 1 - newIndex] || '');
116
118
  return;
117
119
  }
118
120
  if (key.downArrow) {
119
121
  const newIndex = Math.max(historyIndex - 1, -1);
120
122
  setHistoryIndex(newIndex);
123
+ skipNextChange.current = true;
121
124
  if (newIndex < 0) {
122
125
  setValue('');
123
- setDisplayValue('');
124
126
  }
125
127
  else {
126
- const histVal = history[history.length - 1 - newIndex] || '';
127
- setValue(histVal);
128
- setDisplayValue(histVal);
128
+ setValue(history[history.length - 1 - newIndex] || '');
129
129
  }
130
- setInputKey(k => k + 1);
131
130
  return;
132
131
  }
133
132
  }
133
+ // Escape to clear input or close suggestions
134
+ if (key.escape) {
135
+ setValue('');
136
+ setSelectedSuggestion(0);
137
+ setHistoryIndex(-1);
138
+ return;
139
+ }
134
140
  });
135
- const handleSubmit = (input) => {
141
+ const handleSubmit = useCallback((input) => {
136
142
  if (!input.trim())
137
143
  return;
138
- // Add to history
139
- if (input.trim()) {
140
- setHistory(prev => [...prev.filter(h => h !== input.trim()), input.trim()]);
141
- }
144
+ // Add to history (avoid duplicates)
145
+ setHistory(prev => [...prev.filter(h => h !== input.trim()), input.trim()]);
142
146
  // Reset state
143
147
  setValue('');
144
- setDisplayValue('');
145
148
  setHistoryIndex(-1);
146
149
  setSelectedSuggestion(0);
147
- setIsNavigating(false);
148
150
  // Call handler
149
151
  onSubmit(input);
150
- };
152
+ }, [onSubmit]);
151
153
  // Handle text input changes
152
- const handleChange = (v) => {
153
- // User typed something, reset navigation state
154
+ const handleChange = useCallback((v) => {
155
+ if (skipNextChange.current) {
156
+ skipNextChange.current = false;
157
+ return;
158
+ }
154
159
  setValue(v);
155
- setDisplayValue(v);
156
160
  setSelectedSuggestion(0);
157
- setIsNavigating(false);
158
- };
161
+ }, []);
159
162
  // Get context-specific hints for current tab
160
- const getHints = () => {
161
- const hints = [];
163
+ const hints = useMemo(() => {
164
+ const h = [];
162
165
  if (activeService) {
163
166
  const isRunning = activeService.status === 'running' || activeService.status === 'starting';
164
- if (isRunning) {
165
- hints.push(`Ctrl+K stop ${activeService.name}`);
166
- hints.push(`/restart to restart`);
167
- }
168
- if (activeService.id === 'vite') {
169
- hints.push('r to refresh browser');
167
+ if (isRunning && activeService.id !== 'system') {
168
+ h.push(`Ctrl+K stop`);
170
169
  }
171
170
  }
172
- hints.push('Ctrl+L clear logs');
173
- hints.push('Tab/Arrow switch tabs');
174
- hints.push('Ctrl+C quit');
175
- return hints;
176
- };
177
- const hints = getHints();
178
- return (_jsxs(Box, { flexDirection: "column", children: [showSuggestions && (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "gray", marginBottom: 0, children: [suggestions.map((suggestion, index) => (_jsxs(Box, { paddingX: 1, children: [_jsx(Text, { backgroundColor: index === selectedSuggestion ? 'blue' : undefined, color: index === selectedSuggestion ? 'white' : 'cyan', bold: index === selectedSuggestion, children: suggestion.cmd }), suggestion.args && (_jsxs(Text, { color: index === selectedSuggestion ? 'white' : 'gray', backgroundColor: index === selectedSuggestion ? 'blue' : undefined, children: [' ', suggestion.args] })), _jsx(Text, { color: "gray", children: " - " }), _jsx(Text, { color: index === selectedSuggestion ? 'white' : 'gray', dimColor: index !== selectedSuggestion, children: suggestion.desc })] }, `${suggestion.cmd}-${suggestion.args}-${index}`))), _jsx(Box, { paddingX: 1, borderStyle: undefined, children: _jsx(Text, { dimColor: true, children: "Tab to complete \u00B7 Up/Down to select" }) })] })), _jsxs(Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: ">" }), _jsx(Text, { children: " " }), _jsx(TextInput, { value: displayValue, onChange: handleChange, onSubmit: () => handleSubmit(displayValue.startsWith('/') ? displayValue : '/' + displayValue), placeholder: "Type / to run a command..." }, inputKey)] }), _jsx(Box, { paddingX: 1, justifyContent: "space-between", children: _jsx(Box, { children: hints.slice(0, 4).map((hint, index) => (_jsxs(React.Fragment, { children: [index > 0 && _jsx(Text, { color: "gray", children: " \u00B7 " }), _jsx(Text, { dimColor: true, children: hint })] }, hint))) }) })] }));
171
+ h.push('Ctrl+L clear');
172
+ h.push('←/→ tabs');
173
+ h.push('Esc cancel');
174
+ return h;
175
+ }, [activeService]);
176
+ return (_jsxs(Box, { flexDirection: "column", children: [showSuggestions && (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "gray", marginBottom: 0, children: [suggestions.map((suggestion, index) => (_jsxs(Box, { paddingX: 1, children: [_jsx(Text, { backgroundColor: index === selectedSuggestion ? 'blue' : undefined, color: index === selectedSuggestion ? 'white' : 'cyan', bold: index === selectedSuggestion, children: suggestion.cmd }), suggestion.args && (_jsxs(Text, { color: index === selectedSuggestion ? 'white' : 'gray', backgroundColor: index === selectedSuggestion ? 'blue' : undefined, children: [' ', suggestion.args] })), _jsx(Text, { color: "gray", children: " - " }), _jsx(Text, { color: index === selectedSuggestion ? 'white' : 'gray', dimColor: index !== selectedSuggestion, children: suggestion.desc })] }, `${suggestion.cmd}-${suggestion.args}-${index}`))), _jsx(Box, { paddingX: 1, children: _jsx(Text, { dimColor: true, children: "Tab complete \u00B7 \u2191\u2193 select \u00B7 Esc cancel" }) })] })), _jsxs(Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: ">" }), _jsx(Text, { children: " " }), _jsx(TextInput, { value: value, onChange: handleChange, onSubmit: () => handleSubmit(value.startsWith('/') ? value : '/' + value), placeholder: "Type / to run a command..." })] }), _jsx(Box, { paddingX: 1, justifyContent: "space-between", children: _jsx(Box, { children: hints.map((hint, index) => (_jsxs(React.Fragment, { children: [index > 0 && _jsx(Text, { color: "gray", children: " \u00B7 " }), _jsx(Text, { dimColor: true, children: hint })] }, hint))) }) })] }));
179
177
  }
180
178
  //# sourceMappingURL=CommandInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandInput.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/CommandInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandInput.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/CommandInput.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
+ import React from 'react';
1
2
  interface LogPanelProps {
2
3
  logs: string[];
3
4
  isActive?: boolean;
4
5
  maxHeight?: number;
5
6
  }
6
- export default function LogPanel({ logs, isActive, maxHeight }: LogPanelProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
7
+ declare function LogPanel({ logs, isActive, maxHeight }: LogPanelProps): import("react/jsx-runtime").JSX.Element;
8
+ declare const _default: React.MemoExoticComponent<typeof LogPanel>;
9
+ export default _default;
8
10
  //# sourceMappingURL=LogPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogPanel.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/components/LogPanel.tsx"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAe,EAAE,SAAS,EAAE,EAAE,aAAa,2CA4FnF"}
1
+ {"version":3,"file":"LogPanel.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/components/LogPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAG/E,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAe,EAAE,SAAS,EAAE,EAAE,aAAa,2CA+FpE;;AAsBD,wBAA8B"}
@@ -1,21 +1,26 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { useState, useEffect } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useMemo, memo } from 'react';
3
3
  import { Box, Text, useStdout, useInput } from 'ink';
4
- export default function LogPanel({ logs, isActive = true, maxHeight }) {
4
+ // Memoized log line component to prevent unnecessary re-renders
5
+ const LogLine = memo(({ log, index }) => (_jsx(Text, { wrap: "wrap", children: formatLog(log) }, index)));
6
+ LogLine.displayName = 'LogLine';
7
+ function LogPanel({ logs, isActive = true, maxHeight }) {
5
8
  const { stdout } = useStdout();
6
9
  const [scrollOffset, setScrollOffset] = useState(0);
7
10
  const [autoScroll, setAutoScroll] = useState(true);
8
11
  // Calculate visible lines based on provided maxHeight or terminal height
9
12
  // Subtract 2 for padding, 2 for border
10
- const defaultMaxLines = stdout ? Math.max(5, stdout.rows - 10) : 15;
11
- const maxLines = maxHeight ? Math.max(3, maxHeight - 4) : defaultMaxLines;
13
+ const maxLines = useMemo(() => {
14
+ const defaultMaxLines = stdout ? Math.max(5, stdout.rows - 10) : 15;
15
+ return maxHeight ? Math.max(3, maxHeight - 4) : defaultMaxLines;
16
+ }, [stdout?.rows, maxHeight]);
12
17
  // Reset scroll when logs are cleared
13
18
  useEffect(() => {
14
19
  if (logs.length === 0) {
15
20
  setScrollOffset(0);
16
21
  setAutoScroll(true);
17
22
  }
18
- }, [logs.length === 0]);
23
+ }, [logs.length]);
19
24
  // Auto-scroll to bottom when new logs arrive (if autoScroll is enabled)
20
25
  useEffect(() => {
21
26
  if (autoScroll) {
@@ -57,15 +62,19 @@ export default function LogPanel({ logs, isActive = true, maxHeight }) {
57
62
  return;
58
63
  }
59
64
  });
60
- // Calculate visible logs with scroll offset
61
- const totalLogs = logs.length;
62
- const startIndex = Math.max(0, totalLogs - maxLines - scrollOffset);
63
- const endIndex = Math.max(0, totalLogs - scrollOffset);
64
- const visibleLogs = logs.slice(startIndex, endIndex);
65
- // Show scroll indicator
66
- const canScrollUp = startIndex > 0;
67
- const canScrollDown = scrollOffset > 0;
68
- return (_jsxs(Box, { flexDirection: "column", padding: 1, flexGrow: 1, overflow: "hidden", children: [canScrollUp && (_jsxs(Text, { color: "gray", dimColor: true, children: ["\u2191 ", startIndex, " more lines (Shift+\u2191 to scroll)"] })), visibleLogs.length === 0 ? (_jsx(Text, { color: "gray", dimColor: true, children: "No logs yet..." })) : (visibleLogs.map((log, index) => (_jsx(Text, { wrap: "wrap", children: formatLog(log) }, startIndex + index)))), canScrollDown && (_jsxs(Text, { color: "gray", dimColor: true, children: ["\u2193 ", scrollOffset, " more lines (Shift+\u2193 to scroll)"] }))] }));
65
+ // Calculate visible logs with scroll offset - memoized
66
+ const { visibleLogs, startIndex, canScrollUp, canScrollDown } = useMemo(() => {
67
+ const totalLogs = logs.length;
68
+ const start = Math.max(0, totalLogs - maxLines - scrollOffset);
69
+ const end = Math.max(0, totalLogs - scrollOffset);
70
+ return {
71
+ visibleLogs: logs.slice(start, end),
72
+ startIndex: start,
73
+ canScrollUp: start > 0,
74
+ canScrollDown: scrollOffset > 0,
75
+ };
76
+ }, [logs, maxLines, scrollOffset]);
77
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, flexGrow: 1, overflow: "hidden", children: [canScrollUp && (_jsxs(Text, { color: "gray", dimColor: true, children: ["\u2191 ", startIndex, " more lines (Shift+\u2191 to scroll)"] })), visibleLogs.length === 0 ? (_jsx(Text, { color: "gray", dimColor: true, children: "No logs yet..." })) : (visibleLogs.map((log, index) => (_jsx(LogLine, { log: log, index: startIndex + index }, startIndex + index)))), canScrollDown && (_jsxs(Text, { color: "gray", dimColor: true, children: ["\u2193 ", scrollOffset, " more lines (Shift+\u2193 to scroll)"] }))] }));
69
78
  }
70
79
  function formatLog(log) {
71
80
  // Color code different log types
@@ -86,4 +95,5 @@ function formatLog(log) {
86
95
  }
87
96
  return _jsx(Text, { children: log });
88
97
  }
98
+ export default memo(LogPanel);
89
99
  //# sourceMappingURL=LogPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogPanel.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/LogPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LogPanel.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/LogPanel.tsx"],"names":[],"mappings":"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"}
@@ -18,6 +18,6 @@ export default function TabBar({ services, activeTab, onTabChange }) {
18
18
  const statusColor = STATUS_COLORS[service.status];
19
19
  const statusIcon = STATUS_ICONS[service.status];
20
20
  return (_jsx(Box, { children: _jsxs(Text, { color: isActive ? 'white' : 'gray', backgroundColor: isActive ? 'blue' : undefined, bold: isActive, children: [' ', _jsx(Text, { color: statusColor, children: statusIcon }), ' ', service.name, ' '] }) }, service.id));
21
- }) }), _jsx(Box, { children: _jsx(Text, { color: "gray", children: "Tab/\u2190\u2192 switch tabs" }) })] }));
21
+ }) }), _jsx(Box, { children: _jsx(Text, { color: "gray", children: "\u2190/\u2192 switch tabs" }) })] }));
22
22
  }
23
23
  //# sourceMappingURL=TabBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabBar.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/TabBar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC,MAAM,aAAa,GAAsC;IACvD,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,YAAY,GAAsC;IACtD,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAe;IAC9E,OAAO,CACL,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe,aACtD,KAAC,GAAG,IAAC,GAAG,EAAE,CAAC,YACR,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC/B,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC;oBACrC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAEhD,OAAO,CACL,KAAC,GAAG,cACF,MAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAClC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC9C,IAAI,EAAE,QAAQ,aAEb,GAAG,EACJ,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,YAAG,UAAU,GAAQ,EAC5C,GAAG,EACH,OAAO,CAAC,IAAI,EACZ,GAAG,IACC,IAXC,OAAO,CAAC,EAAE,CAYd,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,EACN,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,6CAA0B,GACxC,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"TabBar.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/TabBar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC,MAAM,aAAa,GAAsC;IACvD,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,YAAY,GAAsC;IACtD,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAe;IAC9E,OAAO,CACL,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe,aACtD,KAAC,GAAG,IAAC,GAAG,EAAE,CAAC,YACR,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC/B,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC;oBACrC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAEhD,OAAO,CACL,KAAC,GAAG,cACF,MAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAClC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC9C,IAAI,EAAE,QAAQ,aAEb,GAAG,EACJ,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,YAAG,UAAU,GAAQ,EAC5C,GAAG,EACH,OAAO,CAAC,IAAI,EACZ,GAAG,IACC,IAXC,OAAO,CAAC,EAAE,CAYd,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,EACN,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,0CAAuB,GACrC,IACF,CACP,CAAC;AACJ,CAAC"}