codeui-python 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl
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.
- codeui/__init__.py +1 -1
- codeui/agent/context.py +19 -3
- codeui/analysis/dead_code.py +13 -2
- codeui/analysis/undefined.py +70 -0
- codeui/analysis/unresolved_import.py +34 -4
- codeui/cli/main.py +101 -7
- codeui/core/cache.py +54 -0
- codeui/core/graph.py +233 -3
- codeui/core/override.py +1 -0
- codeui/core/resolver.py +51 -37
- codeui/errors.py +10 -0
- codeui/lang/base.py +5 -2
- codeui/lang/cpp.py +271 -0
- codeui/lang/csharp.py +262 -0
- codeui/lang/dart.py +278 -0
- codeui/lang/generic.py +6 -4
- codeui/lang/go.py +5 -2
- codeui/lang/java.py +320 -0
- codeui/lang/kotlin.py +303 -0
- codeui/lang/php.py +275 -0
- codeui/lang/python.py +49 -7
- codeui/lang/registry.py +22 -2
- codeui/lang/ruby.py +270 -0
- codeui/lang/rust.py +5 -2
- codeui/lang/scala.py +290 -0
- codeui/lang/swift.py +276 -0
- codeui/lang/ts.py +99 -8
- codeui/report/sarif_emitter.py +2 -1
- codeui/server/server.py +156 -85
- codeui/server/static/css/styles.css +1609 -0
- codeui/server/static/index.html +199 -0
- codeui/server/static/js/api.js +485 -0
- codeui/server/static/js/app.js +1044 -0
- codeui/server/static/js/graph_canvas.js +1485 -0
- codeui/server/static/js/minimap.js +383 -0
- codeui/server/static/js/sidebar.js +268 -0
- codeui/server/static/js/state.js +83 -0
- codeui/server/static/js/subgraph_window.js +1208 -0
- codeui/server/static/js/theme.js +332 -0
- codeui/tracer/__init__.py +4 -1
- codeui/tracer/tracer.py +109 -118
- codeui_python-0.1.1.dist-info/METADATA +171 -0
- codeui_python-0.1.1.dist-info/RECORD +71 -0
- {codeui_python-0.1.0.dist-info → codeui_python-0.1.1.dist-info}/licenses/LICENSE +1 -1
- codeui_python-0.1.0.dist-info/METADATA +0 -191
- codeui_python-0.1.0.dist-info/RECORD +0 -52
- {codeui_python-0.1.0.dist-info → codeui_python-0.1.1.dist-info}/WHEEL +0 -0
- {codeui_python-0.1.0.dist-info → codeui_python-0.1.1.dist-info}/entry_points.txt +0 -0
- {codeui_python-0.1.0.dist-info → codeui_python-0.1.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
|
|
6
|
+
<title>codeui — Universal Code Graph & Intelligence Explorer</title>
|
|
7
|
+
<meta name="description" content="Universal code-intelligence library, interactive code graph visualizer, defect detector, and AI agent context builder.">
|
|
8
|
+
<meta property="og:title" content="codeui — Universal Code Graph & Intelligence Explorer">
|
|
9
|
+
<meta property="og:description" content="Universal code-intelligence library, interactive code graph visualizer, defect detector, and AI agent context builder.">
|
|
10
|
+
<meta property="og:type" content="website">
|
|
11
|
+
<meta name="twitter:card" content="summary_large_image">
|
|
12
|
+
<link rel="stylesheet" href="static/css/styles.css">
|
|
13
|
+
</head>
|
|
14
|
+
<body data-theme="dark">
|
|
15
|
+
<header>
|
|
16
|
+
<div class="logo">
|
|
17
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/></svg>
|
|
18
|
+
<span>codeui Universal Explorer</span>
|
|
19
|
+
<button id="btn-toggle-header-compact" class="header-toggle-btn" onclick="App.toggleHeaderCompact()" title="Toggle Fullscreen Graph Mode (Hide/Show Header Controls)">
|
|
20
|
+
<svg id="header-toggle-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m18 15-6-6-6 6"/></svg>
|
|
21
|
+
</button>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="nav-actions">
|
|
24
|
+
<!-- Quick Search Palette Trigger -->
|
|
25
|
+
<button class="secondary btn-quick-search" onclick="App.openQuickPalette()" title="Quick Find (Cmd/Ctrl + K)">
|
|
26
|
+
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
|
|
27
|
+
<span>Find</span>
|
|
28
|
+
<kbd class="kbd-badge">⌘K</kbd>
|
|
29
|
+
</button>
|
|
30
|
+
|
|
31
|
+
<!-- Clone Repo Input -->
|
|
32
|
+
<div style="display:flex; align-items:center; gap:6px; background:var(--bg-surface); border:1px solid var(--border-subtle); padding:2px 6px; border-radius:6px;">
|
|
33
|
+
<input type="text" id="clone-repo-input" placeholder="expressjs/express or URL" style="padding:4px 8px; font-size:0.75rem; background:var(--bg-base); border:1px solid var(--border-subtle); color:var(--text-main); border-radius:4px; width:150px;" onkeydown="if(event.key==='Enter') App.cloneRepository()">
|
|
34
|
+
<button id="btn-clone-repo" class="primary" style="padding:4px 8px; font-size:0.75rem;" onclick="App.cloneRepository()">Clone</button>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<!-- View Modes -->
|
|
38
|
+
<div class="btn-group">
|
|
39
|
+
<button id="btn-mode-files" class="active" onclick="App.switchGraphMode('files')">Files</button>
|
|
40
|
+
<button id="btn-mode-symbols" onclick="App.switchGraphMode('symbols')">Symbols</button>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<!-- Layout Mode Selector -->
|
|
44
|
+
<select id="select-layout-mode" class="select-control" onchange="App.switchLayoutMode(this.value)" title="Change Graph Layout">
|
|
45
|
+
<option value="force">Layout: Force Physics</option>
|
|
46
|
+
<option value="hierarchical">Layout: Hierarchical DAG</option>
|
|
47
|
+
<option value="radial">Layout: Radial Orbit</option>
|
|
48
|
+
<option value="clusters">Layout: Feature Clusters</option>
|
|
49
|
+
</select>
|
|
50
|
+
|
|
51
|
+
<!-- Color Palette Mode -->
|
|
52
|
+
<select id="select-color-mode" class="select-control" onchange="App.switchColorMode(this.value)">
|
|
53
|
+
<option value="layer">Color: Layer</option>
|
|
54
|
+
<option value="feature">Color: Feature</option>
|
|
55
|
+
</select>
|
|
56
|
+
|
|
57
|
+
<!-- Theme Mode Selector -->
|
|
58
|
+
<select id="select-theme" class="select-control" onchange="App.switchTheme(this.value)" title="UI Color Theme">
|
|
59
|
+
<option value="dark">Theme: Dark Slate</option>
|
|
60
|
+
<option value="cyber">Theme: Cyber Matrix</option>
|
|
61
|
+
<option value="light">Theme: Light Studio</option>
|
|
62
|
+
<option value="forest">Theme: Forest Matrix</option>
|
|
63
|
+
<option value="monokai">Theme: Monokai Pro</option>
|
|
64
|
+
</select>
|
|
65
|
+
|
|
66
|
+
<!-- Interactive Path Tracer -->
|
|
67
|
+
<button id="btn-path-tracer" class="secondary" onclick="App.togglePathTracer()" title="Find shortest dependency path between 2 nodes">⚡ Tracer</button>
|
|
68
|
+
|
|
69
|
+
<!-- Reset / Fit View -->
|
|
70
|
+
<button id="btn-fit-canvas" class="secondary" onclick="window.mainCanvas && window.mainCanvas.resetView()" title="Fit / Center Graph View (F)">⛶ Fit View</button>
|
|
71
|
+
|
|
72
|
+
<!-- Defect / Unused Filter -->
|
|
73
|
+
<button id="btn-toggle-unused" class="secondary" onclick="App.toggleUnusedHighlight()">⚠️ Unused</button>
|
|
74
|
+
|
|
75
|
+
<!-- API Drift Trigger -->
|
|
76
|
+
<button id="btn-api-drift" class="secondary" style="color:#38bdf8; border-color:rgba(56,189,248,0.3);" onclick="App.showApiDriftPanel()" title="View public API drift findings and baseline">🌊 API Drift</button>
|
|
77
|
+
|
|
78
|
+
<!-- Direct Disk Write Toggle -->
|
|
79
|
+
<button id="btn-toggle-direct-disk" class="secondary" onclick="App.toggleDirectDiskEdit()" title="Toggle direct disk write vs in-memory session override store">💾 Disk Edit: OFF</button>
|
|
80
|
+
|
|
81
|
+
<!-- Shortcuts Help -->
|
|
82
|
+
<button class="secondary" onclick="App.toggleShortcutsModal()" title="Keyboard Shortcuts (?)">⌨ ?</button>
|
|
83
|
+
|
|
84
|
+
<!-- Refresh & Export -->
|
|
85
|
+
<button class="secondary" onclick="App.loadData(true)" title="Refresh AST Analysis">🔄</button>
|
|
86
|
+
<button class="success" onclick="App.exportZip()">📦 Export Zip</button>
|
|
87
|
+
</div>
|
|
88
|
+
</header>
|
|
89
|
+
<div class="main-layout">
|
|
90
|
+
<!-- Collapsible Sidebar Left -->
|
|
91
|
+
<div class="sidebar collapsed" id="sidebar">
|
|
92
|
+
<div class="sidebar-header">
|
|
93
|
+
<span style="font-weight:700; font-size:0.8rem; color:var(--text-muted);">Explorer Sidebar</span>
|
|
94
|
+
<button class="secondary" onclick="Sidebar.toggleSidebar()" title="Collapse Sidebar">◀ Collapse</button>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="sidebar-tabs">
|
|
97
|
+
<button class="tab-btn active" onclick="Sidebar.switchTab('files')">Files</button>
|
|
98
|
+
<button class="tab-btn" onclick="Sidebar.switchTab('features')">Features</button>
|
|
99
|
+
<button class="tab-btn" onclick="Sidebar.switchTab('defects')">Defects</button>
|
|
100
|
+
<button class="tab-btn" onclick="Sidebar.switchTab('stats')">Stats</button>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="sidebar-search">
|
|
103
|
+
<input type="text" id="search-box" class="search-input" placeholder="Filter files or symbols..." oninput="App.filterGraph(this.value)">
|
|
104
|
+
</div>
|
|
105
|
+
<div class="sidebar-content" id="sidebar-tab-content"></div>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<!-- Central Canvas Area -->
|
|
109
|
+
<div class="canvas-container" id="canvas-container">
|
|
110
|
+
<canvas id="graph-canvas"></canvas>
|
|
111
|
+
|
|
112
|
+
<!-- Canvas Loading Progress Overlay -->
|
|
113
|
+
<div id="canvas-loading-overlay" class="loading-overlay" style="display:none;">
|
|
114
|
+
<div class="loading-spinner"></div>
|
|
115
|
+
<span id="loading-overlay-text" style="font-size:0.78rem; font-weight:600; color:var(--text-main);">Processing...</span>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<!-- Dock Buttons when Windows are Collapsed -->
|
|
119
|
+
<button class="floating-dock-btn" id="btn-dock-sidebar" style="display:flex;" onclick="Sidebar.toggleSidebar()">
|
|
120
|
+
<span>📁</span> Files Explorer
|
|
121
|
+
</button>
|
|
122
|
+
|
|
123
|
+
<!-- Legend Overlay -->
|
|
124
|
+
<div class="legend">
|
|
125
|
+
<div style="font-weight: 700; margin-bottom: 2px;">Architectural Layers</div>
|
|
126
|
+
<div class="legend-item"><span class="legend-shape" style="background:#a855f7;"></span> Entry Point</div>
|
|
127
|
+
<div class="legend-item"><span class="legend-shape" style="background:#3b82f6;"></span> Frontend</div>
|
|
128
|
+
<div class="legend-item"><span class="legend-shape" style="background:#22c55e;"></span> Backend</div>
|
|
129
|
+
<div class="legend-item"><span class="legend-shape" style="background:#06b6d4;"></span> Shared</div>
|
|
130
|
+
<div class="legend-item"><span class="legend-shape" style="background:#eab308;"></span> Tests</div>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<!-- Physics & Simulation Controls -->
|
|
134
|
+
<div class="sim-controls">
|
|
135
|
+
<button class="secondary" id="btn-pause-sim" onclick="App.toggleSim()">Pause</button>
|
|
136
|
+
<button class="secondary" onclick="App.reheatSim()">Re-Heat</button>
|
|
137
|
+
<label style="color:var(--text-muted);">Charge:</label>
|
|
138
|
+
<input type="range" min="-600" max="-50" value="-250" oninput="window.mainCanvas.setCharge(this.value)">
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
<!-- Floating Zoom & Filter Controls -->
|
|
142
|
+
<div class="zoom-controls">
|
|
143
|
+
<button class="zoom-btn" id="btn-toggle-symbol-filter-popover" onclick="App.toggleSymbolFilterPopover()" title="Filter Symbol Categories">
|
|
144
|
+
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
145
|
+
<polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon>
|
|
146
|
+
</svg>
|
|
147
|
+
</button>
|
|
148
|
+
<button class="zoom-btn" onclick="window.mainCanvas.zoomIn()" title="Zoom In (+)">+</button>
|
|
149
|
+
<button class="zoom-btn" onclick="window.mainCanvas.zoomOut()" title="Zoom Out (-)">−</button>
|
|
150
|
+
<button class="zoom-btn" onclick="window.mainCanvas.resetView()" title="Fit / Center View (F)">⛶</button>
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<!-- Dynamic Symbol Category Filter Popover -->
|
|
154
|
+
<div id="symbol-filter-popover" class="symbol-filter-popover" style="display:none;">
|
|
155
|
+
<div class="symbol-filter-header">
|
|
156
|
+
<span class="symbol-filter-title">
|
|
157
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"/></svg>
|
|
158
|
+
Symbol Categories
|
|
159
|
+
</span>
|
|
160
|
+
<div class="symbol-filter-quick-actions">
|
|
161
|
+
<button class="filter-action-btn" onclick="App.setAllSymbolFilters(true)">All</button>
|
|
162
|
+
<button class="filter-action-btn" onclick="App.setAllSymbolFilters(false)">None</button>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
<div id="symbol-filter-items-container" class="symbol-filter-items-list"></div>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<!-- Mini-Map Overlay Component -->
|
|
169
|
+
<div id="graph-minimap-container" class="minimap-container">
|
|
170
|
+
<div class="minimap-header">
|
|
171
|
+
<div class="minimap-title">
|
|
172
|
+
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9"/></svg>
|
|
173
|
+
<span>Mini-Map</span>
|
|
174
|
+
<span id="minimap-count" class="minimap-count">0 files</span>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
<div class="minimap-canvas-wrapper">
|
|
178
|
+
<canvas id="minimap-canvas"></canvas>
|
|
179
|
+
<div id="minimap-tooltip" class="minimap-tooltip" style="display:none;"></div>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
<!-- Taskbar for Minimized SubGraph Floating Windows -->
|
|
184
|
+
<div id="subgraph-taskbar"></div>
|
|
185
|
+
<div id="toast-container"></div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
|
|
189
|
+
<!-- Modular JS Scripts -->
|
|
190
|
+
<script src="static/js/api.js"></script>
|
|
191
|
+
<script src="static/js/theme.js"></script>
|
|
192
|
+
<script src="static/js/state.js"></script>
|
|
193
|
+
<script src="static/js/minimap.js"></script>
|
|
194
|
+
<script src="static/js/graph_canvas.js"></script>
|
|
195
|
+
<script src="static/js/subgraph_window.js"></script>
|
|
196
|
+
<script src="static/js/sidebar.js"></script>
|
|
197
|
+
<script src="static/js/app.js"></script>
|
|
198
|
+
</body>
|
|
199
|
+
</html>
|