chainwall 2.1.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +44 -1
- package/README.md +213 -105
- package/dist/auditor/miner-detector.d.ts +16 -0
- package/dist/auditor/miner-detector.d.ts.map +1 -1
- package/dist/auditor/miner-detector.js +54 -10
- package/dist/auditor/miner-detector.js.map +1 -1
- package/dist/auditor/remediation.d.ts +9 -0
- package/dist/auditor/remediation.d.ts.map +1 -1
- package/dist/auditor/remediation.js +292 -1
- package/dist/auditor/remediation.js.map +1 -1
- package/dist/cli.js +29 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/monitor.d.ts +13 -0
- package/dist/commands/monitor.d.ts.map +1 -0
- package/dist/commands/monitor.js +102 -0
- package/dist/commands/monitor.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +55 -0
- package/dist/config.js.map +1 -1
- package/dist/mcp-server/index.d.ts.map +1 -1
- package/dist/mcp-server/index.js +4 -0
- package/dist/mcp-server/index.js.map +1 -1
- package/dist/mcp-server/schemas.d.ts +2 -0
- package/dist/mcp-server/schemas.d.ts.map +1 -1
- package/dist/mcp-server/schemas.js +2 -0
- package/dist/mcp-server/schemas.js.map +1 -1
- package/dist/mcp-server/tools/capture-baseline.d.ts +3 -0
- package/dist/mcp-server/tools/capture-baseline.d.ts.map +1 -0
- package/dist/mcp-server/tools/capture-baseline.js +42 -0
- package/dist/mcp-server/tools/capture-baseline.js.map +1 -0
- package/dist/mcp-server/tools/monitor-snapshot.d.ts +3 -0
- package/dist/mcp-server/tools/monitor-snapshot.d.ts.map +1 -0
- package/dist/mcp-server/tools/monitor-snapshot.js +53 -0
- package/dist/mcp-server/tools/monitor-snapshot.js.map +1 -0
- package/dist/monitor/baseline.d.ts +6 -0
- package/dist/monitor/baseline.d.ts.map +1 -0
- package/dist/monitor/baseline.js +64 -0
- package/dist/monitor/baseline.js.map +1 -0
- package/dist/monitor/browser-scanner.d.ts +4 -0
- package/dist/monitor/browser-scanner.d.ts.map +1 -0
- package/dist/monitor/browser-scanner.js +141 -0
- package/dist/monitor/browser-scanner.js.map +1 -0
- package/dist/monitor/clipboard-scanner.d.ts +3 -0
- package/dist/monitor/clipboard-scanner.d.ts.map +1 -0
- package/dist/monitor/clipboard-scanner.js +49 -0
- package/dist/monitor/clipboard-scanner.js.map +1 -0
- package/dist/monitor/correlation.d.ts +9 -0
- package/dist/monitor/correlation.d.ts.map +1 -0
- package/dist/monitor/correlation.js +117 -0
- package/dist/monitor/correlation.js.map +1 -0
- package/dist/monitor/index.d.ts +13 -0
- package/dist/monitor/index.d.ts.map +1 -0
- package/dist/monitor/index.js +11 -0
- package/dist/monitor/index.js.map +1 -0
- package/dist/monitor/known-good.d.ts +24 -0
- package/dist/monitor/known-good.d.ts.map +1 -0
- package/dist/monitor/known-good.js +82 -0
- package/dist/monitor/known-good.js.map +1 -0
- package/dist/monitor/network-scanner.d.ts +4 -0
- package/dist/monitor/network-scanner.d.ts.map +1 -0
- package/dist/monitor/network-scanner.js +123 -0
- package/dist/monitor/network-scanner.js.map +1 -0
- package/dist/monitor/persistence-scanner.d.ts +4 -0
- package/dist/monitor/persistence-scanner.d.ts.map +1 -0
- package/dist/monitor/persistence-scanner.js +156 -0
- package/dist/monitor/persistence-scanner.js.map +1 -0
- package/dist/monitor/process-scanner.d.ts +6 -0
- package/dist/monitor/process-scanner.d.ts.map +1 -0
- package/dist/monitor/process-scanner.js +101 -0
- package/dist/monitor/process-scanner.js.map +1 -0
- package/dist/monitor/shadow-ai-scanner.d.ts +3 -0
- package/dist/monitor/shadow-ai-scanner.d.ts.map +1 -0
- package/dist/monitor/shadow-ai-scanner.js +70 -0
- package/dist/monitor/shadow-ai-scanner.js.map +1 -0
- package/dist/monitor/types.d.ts +79 -0
- package/dist/monitor/types.d.ts.map +1 -0
- package/dist/monitor/types.js +12 -0
- package/dist/monitor/types.js.map +1 -0
- package/dist/reporter/monitor-report.d.ts +3 -0
- package/dist/reporter/monitor-report.d.ts.map +1 -0
- package/dist/reporter/monitor-report.js +89 -0
- package/dist/reporter/monitor-report.js.map +1 -0
- package/dist/reporter/risk-scorer.d.ts +2 -0
- package/dist/reporter/risk-scorer.d.ts.map +1 -1
- package/dist/reporter/risk-scorer.js +12 -0
- package/dist/reporter/risk-scorer.js.map +1 -1
- package/dist/reporter/shared.d.ts.map +1 -1
- package/dist/reporter/shared.js +5 -3
- package/dist/reporter/shared.js.map +1 -1
- package/dist/rules/exfiltration-rules.d.ts +3 -0
- package/dist/rules/exfiltration-rules.d.ts.map +1 -0
- package/dist/rules/exfiltration-rules.js +181 -0
- package/dist/rules/exfiltration-rules.js.map +1 -0
- package/dist/rules/index.d.ts +2 -1
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +3 -1
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/types.d.ts +9 -1
- package/dist/rules/types.d.ts.map +1 -1
- package/dist/scanner/filesystem-scanner.d.ts.map +1 -1
- package/dist/scanner/filesystem-scanner.js +27 -10
- package/dist/scanner/filesystem-scanner.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +10 -2
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/components/Footer.d.ts +2 -3
- package/dist/tui/components/Footer.d.ts.map +1 -1
- package/dist/tui/components/Footer.js +11 -5
- package/dist/tui/components/Footer.js.map +1 -1
- package/dist/tui/components/WelcomeScreen.d.ts.map +1 -1
- package/dist/tui/components/WelcomeScreen.js +1 -1
- package/dist/tui/components/WelcomeScreen.js.map +1 -1
- package/dist/tui/educational.d.ts +6 -0
- package/dist/tui/educational.d.ts.map +1 -1
- package/dist/tui/educational.js +37 -0
- package/dist/tui/educational.js.map +1 -1
- package/dist/tui/hooks/useLogs.d.ts +1 -1
- package/dist/tui/hooks/useLogs.d.ts.map +1 -1
- package/dist/tui/hooks/useMonitor.d.ts +28 -0
- package/dist/tui/hooks/useMonitor.d.ts.map +1 -0
- package/dist/tui/hooks/useMonitor.js +127 -0
- package/dist/tui/hooks/useMonitor.js.map +1 -0
- package/dist/tui/screens/AuditPanel.d.ts.map +1 -1
- package/dist/tui/screens/AuditPanel.js +109 -9
- package/dist/tui/screens/AuditPanel.js.map +1 -1
- package/dist/tui/screens/MonitorPanel.d.ts +2 -0
- package/dist/tui/screens/MonitorPanel.d.ts.map +1 -0
- package/dist/tui/screens/MonitorPanel.js +370 -0
- package/dist/tui/screens/MonitorPanel.js.map +1 -0
- package/dist/tui/screens/OverviewPanel.d.ts.map +1 -1
- package/dist/tui/screens/OverviewPanel.js +9 -3
- package/dist/tui/screens/OverviewPanel.js.map +1 -1
- package/dist/tui/screens/ScanPanel.d.ts.map +1 -1
- package/dist/tui/screens/ScanPanel.js +5 -5
- package/dist/tui/screens/ScanPanel.js.map +1 -1
- package/dist/tui/screens/ScanResultsPanel.d.ts.map +1 -1
- package/dist/tui/screens/ScanResultsPanel.js +104 -32
- package/dist/tui/screens/ScanResultsPanel.js.map +1 -1
- package/dist/tui/state.d.ts +7 -3
- package/dist/tui/state.d.ts.map +1 -1
- package/dist/tui/state.js +1 -0
- package/dist/tui/state.js.map +1 -1
- package/dist/tui/utils/open-file.d.ts +4 -0
- package/dist/tui/utils/open-file.d.ts.map +1 -0
- package/dist/tui/utils/open-file.js +29 -0
- package/dist/tui/utils/open-file.js.map +1 -0
- package/install.sh +23 -12
- package/package.json +1 -1
- package/patterns/exfiltration.yaml +160 -0
- package/uninstall.sh +14 -10
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback, useEffect, useMemo } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
import { ProgressBar } from '@inkjs/ui';
|
|
5
|
+
import Spinner from 'ink-spinner';
|
|
6
|
+
import { useAppContext } from '../state.js';
|
|
7
|
+
import { useMonitor } from '../hooks/useMonitor.js';
|
|
8
|
+
import { useTermSize } from '../App.js';
|
|
9
|
+
import { THEME, ICONS, SEVERITY_COLORS } from '../theme.js';
|
|
10
|
+
import { SectionHeader } from '../components/SectionHeader.js';
|
|
11
|
+
import { RiskGauge } from '../components/RiskGauge.js';
|
|
12
|
+
import { RemediationMenu } from '../components/RemediationMenu.js';
|
|
13
|
+
import { MONITOR_EXPLAINERS } from '../educational.js';
|
|
14
|
+
import { getActionsForMonitorFinding, restoreBackup } from '../../auditor/remediation.js';
|
|
15
|
+
import { openFile } from '../utils/open-file.js';
|
|
16
|
+
import { existsSync } from 'node:fs';
|
|
17
|
+
import { execFileSync } from 'node:child_process';
|
|
18
|
+
const MODE_OPTIONS = [
|
|
19
|
+
{ label: 'Quick Scan', desc: 'Processes + network connections (~3s)' },
|
|
20
|
+
{ label: 'Full Scan', desc: 'All 6 scanners: process, network, browser, shadow AI, clipboard, persistence (~8s)' },
|
|
21
|
+
];
|
|
22
|
+
const CATEGORY_ORDER = ['process', 'network', 'browser', 'shadow_ai', 'clipboard', 'persistence'];
|
|
23
|
+
const CATEGORY_LABELS = {
|
|
24
|
+
process: 'Process Monitor',
|
|
25
|
+
network: 'Network Monitor',
|
|
26
|
+
browser: 'Browser Extensions',
|
|
27
|
+
shadow_ai: 'Shadow AI Tools',
|
|
28
|
+
clipboard: 'Clipboard',
|
|
29
|
+
persistence: 'Persistence',
|
|
30
|
+
};
|
|
31
|
+
const SEVERITY_ICON = {
|
|
32
|
+
critical: '[!]',
|
|
33
|
+
high: '[H]',
|
|
34
|
+
medium: '[M]',
|
|
35
|
+
low: '[-]',
|
|
36
|
+
};
|
|
37
|
+
const SEVERITY_CYCLE = [null, 'critical', 'high', 'medium', 'low'];
|
|
38
|
+
function buildVirtualList(result, expandedSections, severityFilter) {
|
|
39
|
+
const items = [];
|
|
40
|
+
for (let i = 0; i < CATEGORY_ORDER.length; i++) {
|
|
41
|
+
const cat = CATEGORY_ORDER[i];
|
|
42
|
+
let catFindings = result.findings.filter(f => f.category === cat);
|
|
43
|
+
if (severityFilter) {
|
|
44
|
+
catFindings = catFindings.filter(f => f.severity === severityFilter);
|
|
45
|
+
}
|
|
46
|
+
items.push({ type: 'section-header', sectionIndex: i, category: cat, count: catFindings.length });
|
|
47
|
+
if (expandedSections.has(i)) {
|
|
48
|
+
if (catFindings.length === 0) {
|
|
49
|
+
items.push({ type: 'section-empty', sectionIndex: i });
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
for (const finding of catFindings) {
|
|
53
|
+
items.push({ type: 'finding', sectionIndex: i, finding });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return items;
|
|
59
|
+
}
|
|
60
|
+
export function MonitorPanel() {
|
|
61
|
+
const { setNumberKeysOverridden, setPanelState, setFocusArea, state: appState } = useAppContext();
|
|
62
|
+
const monitor = useMonitor();
|
|
63
|
+
const termSize = useTermSize();
|
|
64
|
+
const [modeIndex, setModeIndex] = useState(1); // Default: Full
|
|
65
|
+
const isFocused = appState.focusArea === 'content';
|
|
66
|
+
// In idle: combined selection of mode options (0,1) and history items (2+)
|
|
67
|
+
const [idleIndex, setIdleIndex] = useState(1); // Default: Full (index 1)
|
|
68
|
+
const totalIdleItems = MODE_OPTIONS.length + monitor.history.length;
|
|
69
|
+
// Results navigation state
|
|
70
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
71
|
+
const [expandedSections, setExpandedSections] = useState(new Set());
|
|
72
|
+
const [detailExpanded, setDetailExpanded] = useState(false);
|
|
73
|
+
const [severityFilter, setSeverityFilter] = useState(null);
|
|
74
|
+
// Remediation state
|
|
75
|
+
const [showRemediation, setShowRemediation] = useState(false);
|
|
76
|
+
const [remediationActions, setRemediationActions] = useState([]);
|
|
77
|
+
const [remediationTitle, setRemediationTitle] = useState('');
|
|
78
|
+
// Undo state
|
|
79
|
+
const [lastBackup, setLastBackup] = useState(null);
|
|
80
|
+
const [undoStatus, setUndoStatus] = useState(null);
|
|
81
|
+
const [openStatus, setOpenStatus] = useState(null);
|
|
82
|
+
// Sync panel state for footer
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
if (monitor.phase === 'idle') {
|
|
85
|
+
setPanelState('mode-selection');
|
|
86
|
+
}
|
|
87
|
+
else if (monitor.phase === 'error') {
|
|
88
|
+
setPanelState('error');
|
|
89
|
+
}
|
|
90
|
+
else if (monitor.phase === 'done') {
|
|
91
|
+
setPanelState(showRemediation ? 'remediating' : 'results');
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
setPanelState('running');
|
|
95
|
+
}
|
|
96
|
+
}, [monitor.phase, showRemediation, setPanelState]);
|
|
97
|
+
// Override number keys when viewing results
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
setNumberKeysOverridden(monitor.phase === 'done');
|
|
100
|
+
return () => setNumberKeysOverridden(false);
|
|
101
|
+
}, [monitor.phase, setNumberKeysOverridden]);
|
|
102
|
+
const virtualList = useMemo(() => {
|
|
103
|
+
if (!monitor.result)
|
|
104
|
+
return [];
|
|
105
|
+
return buildVirtualList(monitor.result, expandedSections, severityFilter);
|
|
106
|
+
}, [monitor.result, expandedSections, severityFilter]);
|
|
107
|
+
// handleStart is no longer needed; idle handler uses idleIndex directly
|
|
108
|
+
const handleRemediationComplete = useCallback((res) => {
|
|
109
|
+
if (res.success && res.backupPath) {
|
|
110
|
+
const item = virtualList[selectedIndex];
|
|
111
|
+
if (item?.type === 'finding' && item.finding.target) {
|
|
112
|
+
setLastBackup({ backupPath: res.backupPath, originalPath: item.finding.target });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}, [virtualList, selectedIndex]);
|
|
116
|
+
useInput((input, key) => {
|
|
117
|
+
if (!isFocused)
|
|
118
|
+
return;
|
|
119
|
+
// Idle: mode selection + history navigation
|
|
120
|
+
if (monitor.phase === 'idle') {
|
|
121
|
+
if (key.upArrow || input === 'k') {
|
|
122
|
+
setIdleIndex(i => Math.max(i - 1, 0));
|
|
123
|
+
}
|
|
124
|
+
if (key.downArrow || input === 'j') {
|
|
125
|
+
setIdleIndex(i => Math.min(i + 1, totalIdleItems - 1));
|
|
126
|
+
}
|
|
127
|
+
if (key.return) {
|
|
128
|
+
if (idleIndex < MODE_OPTIONS.length) {
|
|
129
|
+
// Mode option selected — start scan
|
|
130
|
+
const mode = idleIndex === 0 ? 'quick' : 'full';
|
|
131
|
+
monitor.startMonitor(mode);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// History item selected — review it
|
|
135
|
+
const histIdx = idleIndex - MODE_OPTIONS.length;
|
|
136
|
+
monitor.reviewHistory(histIdx);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (key.escape)
|
|
140
|
+
setFocusArea('sidebar');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
// Scanning: allow cancel
|
|
144
|
+
if (monitor.phase === 'scanning' || monitor.phase === 'correlating') {
|
|
145
|
+
if (key.escape)
|
|
146
|
+
monitor.cancel();
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Error: reset
|
|
150
|
+
if (monitor.phase === 'error') {
|
|
151
|
+
if (key.return || key.escape)
|
|
152
|
+
monitor.reset();
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
// Done: navigate results
|
|
156
|
+
if (monitor.phase === 'done' && monitor.result) {
|
|
157
|
+
// Remediation menu is active — let it handle input
|
|
158
|
+
if (showRemediation)
|
|
159
|
+
return;
|
|
160
|
+
// Esc: cascading dismiss — final step returns to mode selection, not sidebar
|
|
161
|
+
if (key.escape) {
|
|
162
|
+
if (detailExpanded) {
|
|
163
|
+
setDetailExpanded(false);
|
|
164
|
+
}
|
|
165
|
+
else if (severityFilter) {
|
|
166
|
+
setSeverityFilter(null);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
monitor.reset();
|
|
170
|
+
setSelectedIndex(0);
|
|
171
|
+
setExpandedSections(new Set());
|
|
172
|
+
setDetailExpanded(false);
|
|
173
|
+
setSeverityFilter(null);
|
|
174
|
+
}
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// Undo last action
|
|
178
|
+
if (input === 'u' && lastBackup) {
|
|
179
|
+
const res = restoreBackup(lastBackup.backupPath, lastBackup.originalPath);
|
|
180
|
+
setUndoStatus(res.success ? res.message : `Undo failed: ${res.message}`);
|
|
181
|
+
setLastBackup(null);
|
|
182
|
+
setTimeout(() => setUndoStatus(null), 3000);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
// j/k navigation — keep detail expanded, clear status messages
|
|
186
|
+
if (input === 'j' || key.downArrow) {
|
|
187
|
+
setSelectedIndex(i => Math.min(i + 1, virtualList.length - 1));
|
|
188
|
+
setOpenStatus(null);
|
|
189
|
+
setUndoStatus(null);
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (input === 'k' || key.upArrow) {
|
|
193
|
+
setSelectedIndex(i => Math.max(i - 1, 0));
|
|
194
|
+
setOpenStatus(null);
|
|
195
|
+
setUndoStatus(null);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
// Enter: toggle section expand or detail
|
|
199
|
+
if (key.return) {
|
|
200
|
+
const item = virtualList[selectedIndex];
|
|
201
|
+
if (!item)
|
|
202
|
+
return;
|
|
203
|
+
if (item.type === 'section-header') {
|
|
204
|
+
setExpandedSections(prev => {
|
|
205
|
+
const next = new Set(prev);
|
|
206
|
+
if (next.has(item.sectionIndex)) {
|
|
207
|
+
next.delete(item.sectionIndex);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
next.add(item.sectionIndex);
|
|
211
|
+
}
|
|
212
|
+
return next;
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else if (item.type === 'finding') {
|
|
216
|
+
setDetailExpanded(v => !v);
|
|
217
|
+
}
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
// 1-6 jump to section
|
|
221
|
+
const num = parseInt(input, 10);
|
|
222
|
+
if (num >= 1 && num <= 6) {
|
|
223
|
+
const targetIdx = virtualList.findIndex(item => item.type === 'section-header' && item.sectionIndex === num - 1);
|
|
224
|
+
if (targetIdx >= 0) {
|
|
225
|
+
setSelectedIndex(targetIdx);
|
|
226
|
+
setExpandedSections(prev => {
|
|
227
|
+
const next = new Set(prev);
|
|
228
|
+
if (next.has(num - 1)) {
|
|
229
|
+
next.delete(num - 1);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
next.add(num - 1);
|
|
233
|
+
}
|
|
234
|
+
return next;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// Tab: cycle sections
|
|
240
|
+
if (key.tab) {
|
|
241
|
+
const currentSection = virtualList[selectedIndex]?.type === 'section-header'
|
|
242
|
+
? virtualList[selectedIndex].sectionIndex
|
|
243
|
+
: -1;
|
|
244
|
+
const nextSection = (currentSection + 1) % CATEGORY_ORDER.length;
|
|
245
|
+
const targetIdx = virtualList.findIndex(item => item.type === 'section-header' && item.sectionIndex === nextSection);
|
|
246
|
+
if (targetIdx >= 0)
|
|
247
|
+
setSelectedIndex(targetIdx);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
// f: cycle severity filter
|
|
251
|
+
if (input === 'f') {
|
|
252
|
+
setSeverityFilter(prev => {
|
|
253
|
+
const currentIdx = SEVERITY_CYCLE.indexOf(prev);
|
|
254
|
+
return SEVERITY_CYCLE[(currentIdx + 1) % SEVERITY_CYCLE.length];
|
|
255
|
+
});
|
|
256
|
+
setSelectedIndex(0);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
// r: open remediation
|
|
260
|
+
if (input === 'r') {
|
|
261
|
+
const item = virtualList[selectedIndex];
|
|
262
|
+
if (item?.type !== 'finding')
|
|
263
|
+
return;
|
|
264
|
+
const actions = getActionsForMonitorFinding(item.finding);
|
|
265
|
+
setRemediationActions(actions);
|
|
266
|
+
setRemediationTitle(item.finding.title);
|
|
267
|
+
setShowRemediation(true);
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
// a: quick-add to allowlist
|
|
271
|
+
if (input === 'a') {
|
|
272
|
+
const item = virtualList[selectedIndex];
|
|
273
|
+
if (item?.type !== 'finding')
|
|
274
|
+
return;
|
|
275
|
+
const actions = getActionsForMonitorFinding(item.finding);
|
|
276
|
+
const allowlistAction = actions.find(a => a.type.includes('allowlist'));
|
|
277
|
+
if (allowlistAction) {
|
|
278
|
+
allowlistAction.execute().then(res => {
|
|
279
|
+
setUndoStatus(res.success ? res.message : `Failed: ${res.message}`);
|
|
280
|
+
setTimeout(() => setUndoStatus(null), 3000);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
// o: locate/open target
|
|
286
|
+
if (input === 'o') {
|
|
287
|
+
const item = virtualList[selectedIndex];
|
|
288
|
+
if (item?.type !== 'finding')
|
|
289
|
+
return;
|
|
290
|
+
const f = item.finding;
|
|
291
|
+
if (f.target && existsSync(f.target)) {
|
|
292
|
+
const msg = openFile(f.target);
|
|
293
|
+
setOpenStatus(msg);
|
|
294
|
+
}
|
|
295
|
+
else if (f.pid) {
|
|
296
|
+
try {
|
|
297
|
+
const output = execFileSync('ps', ['-p', String(f.pid), '-o', 'pid,ppid,user,%cpu,%mem,command'], {
|
|
298
|
+
timeout: 5000, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
|
|
299
|
+
});
|
|
300
|
+
setOpenStatus(output.trim());
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
setOpenStatus(`Process ${f.pid} not found (may have exited)`);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
setOpenStatus('No file path or process to locate');
|
|
308
|
+
}
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
// Idle mode — mode selector + history
|
|
314
|
+
if (monitor.phase === 'idle') {
|
|
315
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "MONITOR" }), _jsx(Text, { color: THEME.primaryDim, wrap: "wrap", children: "Analyzes runtime behavior \u2014 running processes, network connections, browser extensions, clipboard, and persistence mechanisms. Compares against baseline to detect new threats." }), _jsx(SectionHeader, { title: "SELECT MODE" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: MODE_OPTIONS.map((opt, i) => (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: i === idleIndex ? THEME.brand : THEME.muted, children: i === idleIndex ? ICONS.arrow : ' ' }), _jsx(Text, { color: i === idleIndex ? THEME.brand : THEME.primary, bold: i === idleIndex, children: opt.label }), _jsx(Text, { color: THEME.label, children: opt.desc })] }), i < MODE_OPTIONS.length - 1 && _jsx(Text, { children: " " })] }, i))) }), monitor.history.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(SectionHeader, { title: "PREVIOUS SCANS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: monitor.history.map((entry, i) => {
|
|
316
|
+
const idx = MODE_OPTIONS.length + i;
|
|
317
|
+
const isSelected = idx === idleIndex;
|
|
318
|
+
const riskColor = entry.result.riskLabel === 'critical' ? THEME.critical
|
|
319
|
+
: entry.result.riskLabel === 'high' ? THEME.warning
|
|
320
|
+
: entry.result.riskLabel === 'low' ? THEME.success : THEME.info;
|
|
321
|
+
const time = new Date(entry.timestamp).toLocaleTimeString();
|
|
322
|
+
return (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: isSelected ? THEME.brand : THEME.muted, children: isSelected ? ICONS.arrow : ' ' }), _jsx(Text, { color: isSelected ? THEME.brand : THEME.primary, children: entry.mode === 'quick' ? 'Quick' : 'Full' }), _jsx(Text, { color: riskColor, children: entry.result.riskLabel }), _jsxs(Text, { color: THEME.value, children: [entry.result.findings.length, " findings"] }), _jsx(Text, { color: THEME.muted, children: time })] }, i));
|
|
323
|
+
}) })] }))] }));
|
|
324
|
+
}
|
|
325
|
+
// Scanning / correlating
|
|
326
|
+
if (monitor.phase === 'scanning' || monitor.phase === 'correlating') {
|
|
327
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "MONITOR IN PROGRESS", color: THEME.brand }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: THEME.brand, children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { color: THEME.primary, children: [monitor.currentStep, " (", monitor.progress, "%)"] })] }), _jsx(Box, { marginTop: 1, children: _jsx(ProgressBar, { value: monitor.progress }) }), _jsx(Text, { color: THEME.muted, children: "Press Esc to cancel" })] })] }));
|
|
328
|
+
}
|
|
329
|
+
// Error
|
|
330
|
+
if (monitor.phase === 'error') {
|
|
331
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "MONITOR ERROR", color: THEME.critical }), _jsx(Text, { color: THEME.critical, children: monitor.error }), _jsx(Text, { color: THEME.primaryDim, children: "Press Enter to try again." })] }));
|
|
332
|
+
}
|
|
333
|
+
// Done — results view
|
|
334
|
+
if (monitor.phase === 'done' && monitor.result) {
|
|
335
|
+
const result = monitor.result;
|
|
336
|
+
const listHeight = termSize.listHeight;
|
|
337
|
+
const currentItem = virtualList[selectedIndex];
|
|
338
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "MONITOR RESULTS" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(RiskGauge, { score: result.riskScore, label: result.riskLabel }), _jsxs(Box, { gap: 2, children: [_jsxs(Text, { children: [_jsx(Text, { color: THEME.label, children: "Findings:" }), " ", _jsx(Text, { color: THEME.value, children: result.findings.length })] }), _jsxs(Text, { children: [_jsx(Text, { color: THEME.label, children: "Duration:" }), " ", _jsxs(Text, { color: THEME.primaryDim, children: [result.durationMs, "ms"] })] })] }), result.baselineDelta && (_jsx(Box, { children: (result.baselineDelta.newProcesses.length + result.baselineDelta.newConnections.length +
|
|
339
|
+
result.baselineDelta.newExtensions.length + result.baselineDelta.newPersistence.length) > 0 ? (_jsx(Text, { color: THEME.warning, children: "[NEW] Changes since baseline detected" })) : (_jsx(Text, { color: THEME.success, children: "No changes since baseline" })) })), severityFilter && (_jsxs(Text, { color: SEVERITY_COLORS[severityFilter], children: ["Filter: ", severityFilter.toUpperCase(), " only (f to cycle, Esc to clear)"] }))] }), _jsx(SectionHeader, { title: "SCANNER RESULTS" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: (() => {
|
|
340
|
+
const viewportSize = Math.max(listHeight, 6);
|
|
341
|
+
const viewportStart = Math.max(0, Math.min(selectedIndex - Math.floor(viewportSize / 2), virtualList.length - viewportSize));
|
|
342
|
+
const viewportEnd = Math.min(viewportStart + viewportSize, virtualList.length);
|
|
343
|
+
const aboveCount = viewportStart;
|
|
344
|
+
const belowCount = virtualList.length - viewportEnd;
|
|
345
|
+
return (_jsxs(_Fragment, { children: [aboveCount > 0 && (_jsxs(Text, { color: THEME.muted, children: [" ", ICONS.scrollUp, " ", aboveCount, " more above"] })), virtualList.slice(viewportStart, viewportEnd).map((item, vi) => {
|
|
346
|
+
const i = viewportStart + vi;
|
|
347
|
+
const isSelected = i === selectedIndex;
|
|
348
|
+
if (item.type === 'section-header') {
|
|
349
|
+
const isExpanded = expandedSections.has(item.sectionIndex);
|
|
350
|
+
const scannerResult = result.scannerResults.find(sr => sr.category === item.category);
|
|
351
|
+
const hasCritical = result.findings.some(f => f.category === item.category && f.severity === 'critical');
|
|
352
|
+
const hasHigh = result.findings.some(f => f.category === item.category && f.severity === 'high');
|
|
353
|
+
const statusColor = hasCritical ? THEME.critical : hasHigh ? THEME.warning :
|
|
354
|
+
item.count > 0 ? THEME.info : THEME.success;
|
|
355
|
+
return (_jsxs(Box, { backgroundColor: isSelected ? THEME.rowHighlight : undefined, children: [_jsxs(Text, { color: THEME.muted, children: [item.sectionIndex + 1, ". "] }), _jsxs(Text, { color: isSelected ? THEME.brand : THEME.muted, children: [isExpanded ? '\u25bc' : '\u25b6', ' '] }), _jsx(Text, { color: isSelected ? THEME.title : THEME.primary, bold: isSelected, children: CATEGORY_LABELS[item.category] }), _jsxs(Text, { color: statusColor, children: [" (", item.count, ")"] }), scannerResult && _jsxs(Text, { color: THEME.muted, children: [" ", scannerResult.durationMs, "ms"] })] }, `sh-${item.sectionIndex}`));
|
|
356
|
+
}
|
|
357
|
+
if (item.type === 'section-empty') {
|
|
358
|
+
return (_jsx(Box, { paddingLeft: 4, children: _jsx(Text, { color: THEME.success, children: "No findings." }) }, `empty-${item.sectionIndex}`));
|
|
359
|
+
}
|
|
360
|
+
// Finding row
|
|
361
|
+
const f = item.finding;
|
|
362
|
+
const sevColor = SEVERITY_COLORS[f.severity] ?? THEME.muted;
|
|
363
|
+
const icon = SEVERITY_ICON[f.severity] ?? '[-]';
|
|
364
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { backgroundColor: isSelected ? THEME.rowHighlight : undefined, paddingLeft: 4, children: [_jsxs(Text, { color: sevColor, children: [icon, " "] }), _jsx(Text, { color: isSelected ? THEME.title : sevColor, children: f.title }), f.pid && _jsxs(Text, { color: THEME.muted, children: [" PID:", f.pid] }), f.signals.length > 1 && (_jsxs(Text, { color: THEME.muted, children: [" (", f.signals.length, " signals)"] }))] }), isSelected && detailExpanded && (_jsxs(Box, { paddingLeft: 6, flexDirection: "column", borderStyle: "round", borderColor: THEME.border, marginLeft: 4, marginRight: 2, paddingX: 1, children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: sevColor, bold: true, children: f.severity.toUpperCase() }), _jsx(Text, { color: THEME.title, children: f.title })] }), _jsx(Text, { color: THEME.primaryDim, wrap: "wrap", children: f.description }), f.pid && (_jsxs(Box, { children: [_jsx(Text, { color: THEME.label, children: "PID: " }), _jsx(Text, { color: THEME.value, children: f.pid })] })), f.processName && (_jsxs(Box, { children: [_jsx(Text, { color: THEME.label, children: "Process: " }), _jsx(Text, { color: THEME.value, children: f.processName })] })), f.target && (_jsxs(Box, { children: [_jsx(Text, { color: THEME.label, children: "Target: " }), _jsx(Text, { color: THEME.primaryDim, children: f.target })] })), f.signals.length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: THEME.label, children: "Signals:" }), f.signals.map((sig, si) => (_jsxs(Text, { color: THEME.primaryDim, children: [' ', _jsx(Text, { color: THEME.brand, children: '\u25cf' }), " ", sig.type, " (w:", sig.weight.toFixed(1), ") ", sig.detail] }, si)))] })), MONITOR_EXPLAINERS[f.category] && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: THEME.warning, wrap: "wrap", children: ["Risk: ", MONITOR_EXPLAINERS[f.category].risk] }), _jsxs(Text, { color: THEME.primaryDim, wrap: "wrap", children: ["AI Impact: ", MONITOR_EXPLAINERS[f.category].aiImpact] }), _jsxs(Text, { color: THEME.success, wrap: "wrap", children: ["Action: ", MONITOR_EXPLAINERS[f.category].action] })] })), _jsx(Text, { color: THEME.title, children: "[r] remediate [a] allowlist [o] locate" })] }))] }, f.id));
|
|
365
|
+
}), belowCount > 0 && (_jsxs(Text, { color: THEME.muted, children: [" ", ICONS.scrollDown, " ", belowCount, " more below"] }))] }));
|
|
366
|
+
})() }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: THEME.hint, children: ["j/k:navigate Enter:expand r:remediate a:allowlist o:locate f:filter", lastBackup ? ' u:undo' : '', " Esc:back"] }) }), undoStatus && _jsx(Text, { color: THEME.brand, children: undoStatus }), openStatus && _jsx(Text, { color: THEME.brand, children: openStatus }), showRemediation && (_jsx(RemediationMenu, { title: remediationTitle, actions: remediationActions, onClose: () => setShowRemediation(false), onActionComplete: handleRemediationComplete }))] }));
|
|
367
|
+
}
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=MonitorPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonitorPanel.js","sourceRoot":"","sources":["../../../src/tui/screens/MonitorPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverviewPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/OverviewPanel.tsx"],"names":[],"mappings":"AA4CA,wBAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"OverviewPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/OverviewPanel.tsx"],"names":[],"mappings":"AA4CA,wBAAgB,aAAa,4CAwN5B"}
|
|
@@ -36,9 +36,15 @@ export function OverviewPanel() {
|
|
|
36
36
|
const termSize = useTermSize();
|
|
37
37
|
const [tools, setTools] = useState([]);
|
|
38
38
|
const [toolsLoaded, setToolsLoaded] = useState(false);
|
|
39
|
+
const [toolsError, setToolsError] = useState(null);
|
|
39
40
|
useEffect(() => {
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
try {
|
|
42
|
+
const detected = detectInstalledTools();
|
|
43
|
+
setTools(detected);
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
setToolsError(err instanceof Error ? err.message : 'Failed to detect AI tools');
|
|
47
|
+
}
|
|
42
48
|
setToolsLoaded(true);
|
|
43
49
|
}, []);
|
|
44
50
|
useEffect(() => {
|
|
@@ -79,6 +85,6 @@ export function OverviewPanel() {
|
|
|
79
85
|
const auditTools = state.auditResult?.tools ?? tools;
|
|
80
86
|
const focus = computeFocusLine(auditTools, exposures);
|
|
81
87
|
return focus ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: THEME.warning, wrap: "wrap", children: ['\u26a0', " ", focus] }) })) : null;
|
|
82
|
-
})(), _jsxs(Box, { marginTop: 1, gap: 4, flexWrap: "wrap", children: [_jsxs(Box, { flexDirection: "column", children: [_jsx(StatusIndicator, { label: "Protection", value: hookStatus.protectionEnabled ? 'ON' : 'OFF', status: hookStatus.protectionEnabled ? 'ok' : 'error' }), _jsx(StatusIndicator, { label: "Hooks", value: hookStatus.checked ? (hookStatus.installed ? 'Installed' : 'Not installed') : 'Checking...', status: hookStatus.checked ? (hookStatus.installed ? 'ok' : 'warning') : 'inactive' })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(StatusIndicator, { label: "Last Scan", value: state.scanResult ? `${findingsCount} findings` : 'Not run', status: state.scanResult ? (findingsCount > 0 ? 'warning' : 'ok') : 'inactive' }), _jsx(StatusIndicator, { label: "Last Audit", value: state.auditResult ? `${state.auditResult.tools.length} tools` : 'Not run', status: state.auditResult ? 'ok' : 'inactive' })] })] }), _jsx(SectionHeader, { title: "DETECTED AI TOOLS", rightLabel: tools.length > 0 ? `${tools.length} found` : undefined }), tools.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(Box, { marginTop: 1, borderStyle: "single", borderColor: THEME.border, paddingX: 1, flexDirection: "column", children: _jsx(Table, { columns: toolColumns, data: tools, selectedIndex: -1, height: Math.min(tools.length + 1, 8), keyExtractor: (t) => t.name, emptyMessage: "No AI tools detected." }) }), _jsx(Text, { color: THEME.primaryDim, children: "Full Access = entire filesystem | Workspace = project only | Limited = open file only" })] })) : (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: THEME.success, children: "No AI tools detected. Run an audit for a deeper check." }) })), _jsx(SectionHeader, { title: "GETTING STARTED" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", gap: 0, children: [_jsxs(Text, { color: THEME.primaryDim, wrap: "wrap", children: ["Press ", _jsx(Text, { color: THEME.title, bold: true, children: "1" }), "-", _jsx(Text, { color: THEME.title, bold: true, children: "
|
|
88
|
+
})(), _jsxs(Box, { marginTop: 1, gap: 4, flexWrap: "wrap", children: [_jsxs(Box, { flexDirection: "column", children: [_jsx(StatusIndicator, { label: "Protection", value: hookStatus.protectionEnabled ? 'ON' : 'OFF', status: hookStatus.protectionEnabled ? 'ok' : 'error' }), _jsx(StatusIndicator, { label: "Hooks", value: hookStatus.checked ? (hookStatus.installed ? 'Installed' : 'Not installed') : 'Checking...', status: hookStatus.checked ? (hookStatus.installed ? 'ok' : 'warning') : 'inactive' })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(StatusIndicator, { label: "Last Scan", value: state.scanResult ? `${findingsCount} findings` : 'Not run', status: state.scanResult ? (findingsCount > 0 ? 'warning' : 'ok') : 'inactive' }), _jsx(StatusIndicator, { label: "Last Audit", value: state.auditResult ? `${state.auditResult.tools.length} tools` : 'Not run', status: state.auditResult ? 'ok' : 'inactive' }), _jsx(StatusIndicator, { label: "Last Monitor", value: state.monitorResult ? `${state.monitorResult.findings.length} findings` : 'Not run', status: state.monitorResult ? (state.monitorResult.findings.length > 0 ? 'warning' : 'ok') : 'inactive' })] })] }), _jsx(SectionHeader, { title: "DETECTED AI TOOLS", rightLabel: tools.length > 0 ? `${tools.length} found` : undefined }), toolsError ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: THEME.warning, children: ["Tool detection failed: ", toolsError] }) })) : tools.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(Box, { marginTop: 1, borderStyle: "single", borderColor: THEME.border, paddingX: 1, flexDirection: "column", children: _jsx(Table, { columns: toolColumns, data: tools, selectedIndex: -1, height: Math.min(tools.length + 1, 8), keyExtractor: (t) => t.name, emptyMessage: "No AI tools detected." }) }), _jsx(Text, { color: THEME.primaryDim, children: "Full Access = entire filesystem | Workspace = project only | Limited = open file only" })] })) : (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: THEME.success, children: "No AI tools detected. Run an audit for a deeper check." }) })), _jsx(SectionHeader, { title: "GETTING STARTED" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", gap: 0, children: [_jsxs(Text, { color: THEME.primaryDim, wrap: "wrap", children: ["Press ", _jsx(Text, { color: THEME.title, bold: true, children: "1" }), "-", _jsx(Text, { color: THEME.title, bold: true, children: "6" }), " to jump between panels, or use the sidebar with arrow keys."] }), _jsx(Text, { children: " " }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { color: THEME.title, bold: true, children: '2 Scan ' }), _jsx(Text, { color: THEME.primaryDim, children: "Find exposed secrets, credentials, crypto keys, and PII on your machine" })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { color: THEME.title, bold: true, children: '3 Audit ' }), _jsx(Text, { color: THEME.primaryDim, children: "Discover which AI tools are installed and what they can access" })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { color: THEME.title, bold: true, children: '4 Monitor ' }), _jsx(Text, { color: THEME.primaryDim, children: "Runtime behavioral analysis \u2014 processes, network, browser, persistence" })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { color: THEME.title, bold: true, children: '5 Settings' }), _jsx(Text, { color: THEME.primaryDim, children: "Configure allowlists, blocklists, and toggle real-time protection" })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { color: THEME.title, bold: true, children: '6 Logs ' }), _jsx(Text, { color: THEME.primaryDim, children: "View hook activity, scan history, and blocked operations" })] }), _jsx(Text, { children: " " }), _jsxs(Text, { color: THEME.muted, children: ["Tip: Start with ", _jsx(Text, { color: THEME.title, bold: true, children: "Audit" }), " to see what's exposed, then ", _jsx(Text, { color: THEME.title, bold: true, children: "Scan" }), " to find specific secrets. Press ", _jsx(Text, { color: THEME.title, bold: true, children: "?" }), " for all keybindings."] })] })] }));
|
|
83
89
|
}
|
|
84
90
|
//# sourceMappingURL=OverviewPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverviewPanel.js","sourceRoot":"","sources":["../../../src/tui/screens/OverviewPanel.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,UAAU,GAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAErE,MAAM,WAAW,GAAqB;IACpC;QACE,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAAG,IAAI,CAAC,IAAI,GAAQ;KAC/D;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAChB,KAAC,IAAI,IAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,kBAC/C,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAC3B,CACR;KACF;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAChB,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,YACtE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,GACnD,CACR;KACF;CACF,CAAC;AAEF,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"OverviewPanel.js","sourceRoot":"","sources":["../../../src/tui/screens/OverviewPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/ScanPanel.tsx"],"names":[],"mappings":"AAsDA,wBAAgB,SAAS,
|
|
1
|
+
{"version":3,"file":"ScanPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/ScanPanel.tsx"],"names":[],"mappings":"AAsDA,wBAAgB,SAAS,4CAqRxB"}
|
|
@@ -20,9 +20,9 @@ const STAGE_LABELS = {
|
|
|
20
20
|
done: 'Complete',
|
|
21
21
|
};
|
|
22
22
|
const MODES = [
|
|
23
|
-
{ key: 'quick', label: 'Quick Scan', desc: 'System credentials & permissions only' },
|
|
24
|
-
{ key: 'standard', label: 'Standard Scan', desc: 'Current project + system targets' },
|
|
25
|
-
{ key: 'deep', label: 'Deep Scan', desc: 'Full home directory + system targets' },
|
|
23
|
+
{ key: 'quick', label: 'Quick Scan', desc: 'System credentials & permissions only (~2s)' },
|
|
24
|
+
{ key: 'standard', label: 'Standard Scan', desc: 'Current project + system targets (~5s)' },
|
|
25
|
+
{ key: 'deep', label: 'Deep Scan', desc: 'Full home directory + system targets (~15s)' },
|
|
26
26
|
{ key: 'custom', label: 'Custom Path', desc: 'Specify a directory to scan' },
|
|
27
27
|
];
|
|
28
28
|
function formatElapsed(ms) {
|
|
@@ -155,7 +155,7 @@ export function ScanPanel() {
|
|
|
155
155
|
return (_jsxs(BorderedSection, { title: "SCAN ERROR", borderColor: THEME.critical, children: [_jsx(Text, { color: THEME.critical, children: scan.error }), _jsx(Text, { color: THEME.primaryDim, children: "Press Esc to go back" })] }));
|
|
156
156
|
}
|
|
157
157
|
if (scan.phase === 'idle' || scan.phase === 'selecting') {
|
|
158
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "SELECT
|
|
158
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "SCAN" }), _jsx(Text, { color: THEME.primaryDim, wrap: "wrap", children: "Scans your filesystem for exposed secrets, credentials, crypto keys, PII, and dangerous patterns. Findings are matched against 197 rules with severity ratings." }), _jsx(SectionHeader, { title: "SELECT MODE" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: MODES.map((mode, i) => (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: i === modeIndex ? THEME.brand : THEME.muted, children: i === modeIndex ? ICONS.arrow : ' ' }), _jsx(Text, { color: i === modeIndex ? THEME.brand : THEME.primary, bold: i === modeIndex, children: mode.label }), _jsx(Text, { color: THEME.label, children: mode.desc })] }), i < MODES.length - 1 && _jsx(Text, { children: " " })] }, mode.key))) }), enteringPath && (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: THEME.brand, children: "Path: " }), _jsx(TextInput, { placeholder: "~/Projects", onSubmit: (value) => {
|
|
159
159
|
const path = value.trim();
|
|
160
160
|
if (path) {
|
|
161
161
|
setCustomPath(path);
|
|
@@ -175,7 +175,7 @@ export function ScanPanel() {
|
|
|
175
175
|
}
|
|
176
176
|
// Cancelled state
|
|
177
177
|
if (scan.phase === 'cancelled') {
|
|
178
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "SCAN CANCELLED", color: THEME.warning }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: THEME.warning, children: ["Scan cancelled ", ICONS.dash, " ", scan.scannedFiles, " files scanned, ", scan.findingsCount, " finding", scan.findingsCount !== 1 ? 's' : ''] }), _jsxs(Text, { children: [_jsx(Text, { color: THEME.label, children: "Elapsed:" }), " ", _jsx(Text, { color: THEME.value, children: formatElapsed(scan.elapsedMs) })] })] }), scan.findingsCount > 0 && (_jsxs(_Fragment, { children: [_jsx(SectionHeader, { title: `FINDINGS (${scan.findingsCount})` }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [scan.findings.slice(0, 8).map((f, i) => (_jsxs(Box, { gap: 1, children: [_jsx(SeverityBadge, { severity: f.severity }), _jsx(Text, { color: THEME.primary, children: f.ruleName }), _jsx(FileLink, { path: f.filePath, display: f.filePath.split('/').pop() ?? f.filePath })] }, i))), scan.findingsCount > 8 && (_jsxs(Text, { color: THEME.muted, children: ["...and ", scan.findingsCount - 8, " more"] }))] })] }))] }));
|
|
178
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SectionHeader, { title: "SCAN CANCELLED", color: THEME.warning }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: THEME.warning, children: ["Scan cancelled ", ICONS.dash, " ", scan.scannedFiles, " files scanned, ", scan.findingsCount, " finding", scan.findingsCount !== 1 ? 's' : ''] }), _jsxs(Text, { children: [_jsx(Text, { color: THEME.label, children: "Elapsed:" }), " ", _jsx(Text, { color: THEME.value, children: formatElapsed(scan.elapsedMs) })] })] }), scan.findingsCount > 0 && (_jsxs(_Fragment, { children: [_jsx(SectionHeader, { title: `FINDINGS (${scan.findingsCount})` }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [scan.findings.slice(0, 8).map((f, i) => (_jsxs(Box, { gap: 1, children: [_jsx(SeverityBadge, { severity: f.severity }), _jsx(Text, { color: THEME.primary, children: f.ruleName }), _jsx(FileLink, { path: f.filePath, display: f.filePath.split('/').pop() ?? f.filePath })] }, i))), scan.findingsCount > 8 && (_jsxs(Text, { color: THEME.muted, children: ["...and ", scan.findingsCount - 8, " more"] }))] }), _jsx(Text, { color: THEME.primaryDim, children: "Press Esc to view partial results" })] }))] }));
|
|
179
179
|
}
|
|
180
180
|
// Scanning state
|
|
181
181
|
const progressPercent = scan.progress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanPanel.js","sourceRoot":"","sources":["../../../src/tui/screens/ScanPanel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScanPanel.js","sourceRoot":"","sources":["../../../src/tui/screens/ScanPanel.tsx"],"names":[],"mappings":"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"}
|