codexia 0.2.0 → 0.3.0
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/CHANGELOG.md +55 -51
- package/README.md +67 -0
- package/dist/ai/config.d.ts +11 -0
- package/dist/ai/config.d.ts.map +1 -0
- package/dist/ai/config.js +51 -0
- package/dist/ai/config.js.map +1 -0
- package/dist/ai/explainer.d.ts +32 -0
- package/dist/ai/explainer.d.ts.map +1 -0
- package/dist/ai/explainer.js +118 -0
- package/dist/ai/explainer.js.map +1 -0
- package/dist/ai/index.d.ts +23 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +47 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/prompts/impact-explain.d.ts +6 -0
- package/dist/ai/prompts/impact-explain.d.ts.map +1 -0
- package/dist/ai/prompts/impact-explain.js +50 -0
- package/dist/ai/prompts/impact-explain.js.map +1 -0
- package/dist/ai/prompts/pr-describe.d.ts +13 -0
- package/dist/ai/prompts/pr-describe.d.ts.map +1 -0
- package/dist/ai/prompts/pr-describe.js +65 -0
- package/dist/ai/prompts/pr-describe.js.map +1 -0
- package/dist/ai/prompts/pr-review.d.ts +18 -0
- package/dist/ai/prompts/pr-review.d.ts.map +1 -0
- package/dist/ai/prompts/pr-review.js +61 -0
- package/dist/ai/prompts/pr-review.js.map +1 -0
- package/dist/ai/provider.d.ts +6 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +19 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/ai/providers/anthropic.d.ts +14 -0
- package/dist/ai/providers/anthropic.d.ts.map +1 -0
- package/dist/ai/providers/anthropic.js +53 -0
- package/dist/ai/providers/anthropic.js.map +1 -0
- package/dist/ai/providers/ollama.d.ts +13 -0
- package/dist/ai/providers/ollama.d.ts.map +1 -0
- package/dist/ai/providers/ollama.js +64 -0
- package/dist/ai/providers/ollama.js.map +1 -0
- package/dist/ai/providers/openai.d.ts +14 -0
- package/dist/ai/providers/openai.d.ts.map +1 -0
- package/dist/ai/providers/openai.js +42 -0
- package/dist/ai/providers/openai.js.map +1 -0
- package/dist/ai/types.d.ts +29 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +5 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +3 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +30 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/graph.js +1 -1
- package/dist/cli/commands/graph.js.map +1 -1
- package/dist/cli/commands/impact.d.ts.map +1 -1
- package/dist/cli/commands/impact.js +23 -0
- package/dist/cli/commands/impact.js.map +1 -1
- package/dist/cli/commands/pr-report.d.ts.map +1 -1
- package/dist/cli/commands/pr-report.js +49 -0
- package/dist/cli/commands/pr-report.js.map +1 -1
- package/dist/cli/engine.d.ts +65 -2
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +136 -2
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/interactive.js +1 -1
- package/dist/cli/interactive.js.map +1 -1
- package/dist/core/dependency-graph.d.ts +3 -1
- package/dist/core/dependency-graph.d.ts.map +1 -1
- package/dist/core/dependency-graph.js +20 -7
- package/dist/core/dependency-graph.js.map +1 -1
- package/dist/core/language-providers/index.d.ts +9 -0
- package/dist/core/language-providers/index.d.ts.map +1 -0
- package/dist/core/language-providers/index.js +12 -0
- package/dist/core/language-providers/index.js.map +1 -0
- package/dist/core/language-providers/providers/go.d.ts +20 -0
- package/dist/core/language-providers/providers/go.d.ts.map +1 -0
- package/dist/core/language-providers/providers/go.js +256 -0
- package/dist/core/language-providers/providers/go.js.map +1 -0
- package/dist/core/language-providers/providers/java.d.ts +20 -0
- package/dist/core/language-providers/providers/java.d.ts.map +1 -0
- package/dist/core/language-providers/providers/java.js +234 -0
- package/dist/core/language-providers/providers/java.js.map +1 -0
- package/dist/core/language-providers/providers/python.d.ts +20 -0
- package/dist/core/language-providers/providers/python.d.ts.map +1 -0
- package/dist/core/language-providers/providers/python.js +267 -0
- package/dist/core/language-providers/providers/python.js.map +1 -0
- package/dist/core/language-providers/providers/ruby.d.ts +20 -0
- package/dist/core/language-providers/providers/ruby.d.ts.map +1 -0
- package/dist/core/language-providers/providers/ruby.js +281 -0
- package/dist/core/language-providers/providers/ruby.js.map +1 -0
- package/dist/core/language-providers/providers/rust.d.ts +20 -0
- package/dist/core/language-providers/providers/rust.d.ts.map +1 -0
- package/dist/core/language-providers/providers/rust.js +384 -0
- package/dist/core/language-providers/providers/rust.js.map +1 -0
- package/dist/core/language-providers/providers/typescript.d.ts +20 -0
- package/dist/core/language-providers/providers/typescript.d.ts.map +1 -0
- package/dist/core/language-providers/providers/typescript.js +300 -0
- package/dist/core/language-providers/providers/typescript.js.map +1 -0
- package/dist/core/language-providers/registry.d.ts +59 -0
- package/dist/core/language-providers/registry.d.ts.map +1 -0
- package/dist/core/language-providers/registry.js +133 -0
- package/dist/core/language-providers/registry.js.map +1 -0
- package/dist/core/language-providers/types.d.ts +55 -0
- package/dist/core/language-providers/types.d.ts.map +1 -0
- package/dist/core/language-providers/types.js +29 -0
- package/dist/core/language-providers/types.js.map +1 -0
- package/dist/core/repo-indexer.d.ts +10 -4
- package/dist/core/repo-indexer.d.ts.map +1 -1
- package/dist/core/repo-indexer.js +24 -26
- package/dist/core/repo-indexer.js.map +1 -1
- package/dist/dashboard/client/src/App.d.ts +3 -0
- package/dist/dashboard/client/src/App.d.ts.map +1 -0
- package/dist/dashboard/client/src/App.js +127 -0
- package/dist/dashboard/client/src/App.js.map +1 -0
- package/dist/dashboard/client/src/api.d.ts +9 -0
- package/dist/dashboard/client/src/api.d.ts.map +1 -0
- package/dist/dashboard/client/src/api.js +30 -0
- package/dist/dashboard/client/src/api.js.map +1 -0
- package/dist/dashboard/client/src/components/ActivityChart.d.ts +7 -0
- package/dist/dashboard/client/src/components/ActivityChart.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/ActivityChart.js +76 -0
- package/dist/dashboard/client/src/components/ActivityChart.js.map +1 -0
- package/dist/dashboard/client/src/components/Card.d.ts +21 -0
- package/dist/dashboard/client/src/components/Card.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/Card.js +35 -0
- package/dist/dashboard/client/src/components/Card.js.map +1 -0
- package/dist/dashboard/client/src/components/ComplexityHeatmap.d.ts +7 -0
- package/dist/dashboard/client/src/components/ComplexityHeatmap.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/ComplexityHeatmap.js +55 -0
- package/dist/dashboard/client/src/components/ComplexityHeatmap.js.map +1 -0
- package/dist/dashboard/client/src/components/ErrorDisplay.d.ts +7 -0
- package/dist/dashboard/client/src/components/ErrorDisplay.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/ErrorDisplay.js +14 -0
- package/dist/dashboard/client/src/components/ErrorDisplay.js.map +1 -0
- package/dist/dashboard/client/src/components/HealthScore.d.ts +7 -0
- package/dist/dashboard/client/src/components/HealthScore.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/HealthScore.js +66 -0
- package/dist/dashboard/client/src/components/HealthScore.js.map +1 -0
- package/dist/dashboard/client/src/components/HotPathsList.d.ts +8 -0
- package/dist/dashboard/client/src/components/HotPathsList.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/HotPathsList.js +59 -0
- package/dist/dashboard/client/src/components/HotPathsList.js.map +1 -0
- package/dist/dashboard/client/src/components/LanguageBreakdown.d.ts +6 -0
- package/dist/dashboard/client/src/components/LanguageBreakdown.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/LanguageBreakdown.js +49 -0
- package/dist/dashboard/client/src/components/LanguageBreakdown.js.map +1 -0
- package/dist/dashboard/client/src/components/Loading.d.ts +4 -0
- package/dist/dashboard/client/src/components/Loading.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/Loading.js +25 -0
- package/dist/dashboard/client/src/components/Loading.js.map +1 -0
- package/dist/dashboard/client/src/components/SignalsList.d.ts +8 -0
- package/dist/dashboard/client/src/components/SignalsList.d.ts.map +1 -0
- package/dist/dashboard/client/src/components/SignalsList.js +70 -0
- package/dist/dashboard/client/src/components/SignalsList.js.map +1 -0
- package/dist/dashboard/client/src/hooks/useApi.d.ts +9 -0
- package/dist/dashboard/client/src/hooks/useApi.d.ts.map +1 -0
- package/dist/dashboard/client/src/hooks/useApi.js +19 -0
- package/dist/dashboard/client/src/hooks/useApi.js.map +1 -0
- package/dist/dashboard/client/src/main.d.ts +2 -0
- package/dist/dashboard/client/src/main.d.ts.map +1 -0
- package/dist/dashboard/client/src/main.js +8 -0
- package/dist/dashboard/client/src/main.js.map +1 -0
- package/dist/dashboard/client/src/types.d.ts +85 -0
- package/dist/dashboard/client/src/types.d.ts.map +1 -0
- package/dist/dashboard/client/src/types.js +2 -0
- package/dist/dashboard/client/src/types.js.map +1 -0
- package/dist/dashboard/client/vite.config.d.ts +3 -0
- package/dist/dashboard/client/vite.config.d.ts.map +1 -0
- package/dist/dashboard/client/vite.config.js +24 -0
- package/dist/dashboard/client/vite.config.js.map +1 -0
- package/dist/dashboard/index.d.ts +3 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +2 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/server/index.d.ts +108 -0
- package/dist/dashboard/server/index.d.ts.map +1 -0
- package/dist/dashboard/server/index.js +740 -0
- package/dist/dashboard/server/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/modules/complexity-engine.d.ts +1 -0
- package/dist/modules/complexity-engine.d.ts.map +1 -1
- package/dist/modules/complexity-engine.js +26 -18
- package/dist/modules/complexity-engine.js.map +1 -1
- package/dist/modules/graph-utils.d.ts +7 -2
- package/dist/modules/graph-utils.d.ts.map +1 -1
- package/dist/modules/graph-utils.js +17 -11
- package/dist/modules/graph-utils.js.map +1 -1
- package/package.json +9 -4
- package/src/dashboard/dist/assets/index-DwKWIJD-.css +1 -0
- package/src/dashboard/dist/assets/index-jqRzjhTn.js +226 -0
- package/src/dashboard/dist/codexia-icon.svg +10 -0
- package/src/dashboard/dist/index.html +17 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'node:fs/promises';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import { glob } from 'glob';
|
|
4
|
+
import { getLanguageRegistry } from './language-providers/index.js';
|
|
4
5
|
const CACHE_VERSION = '1.0.0';
|
|
5
6
|
const CACHE_DIR = '.codexia';
|
|
6
7
|
const CACHE_FILE = 'index-cache.json';
|
|
@@ -9,8 +10,10 @@ export class RepoIndexer {
|
|
|
9
10
|
repoRoot;
|
|
10
11
|
files = new Map();
|
|
11
12
|
indexed = false;
|
|
13
|
+
languageRegistry;
|
|
12
14
|
constructor(repoRoot) {
|
|
13
15
|
this.repoRoot = repoRoot;
|
|
16
|
+
this.languageRegistry = getLanguageRegistry();
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
19
|
* Index the repository (with optional caching)
|
|
@@ -56,21 +59,10 @@ export class RepoIndexer {
|
|
|
56
59
|
}
|
|
57
60
|
async performIndex() {
|
|
58
61
|
this.files.clear();
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
'**/*.jsx',
|
|
64
|
-
'**/*.mjs',
|
|
65
|
-
'**/*.cjs',
|
|
66
|
-
];
|
|
67
|
-
const ignorePatterns = [
|
|
68
|
-
'**/node_modules/**',
|
|
69
|
-
'**/dist/**',
|
|
70
|
-
'**/build/**',
|
|
71
|
-
'**/.git/**',
|
|
72
|
-
'**/coverage/**',
|
|
73
|
-
];
|
|
62
|
+
// Get patterns from all registered language providers
|
|
63
|
+
const patterns = this.languageRegistry.getAllPatterns();
|
|
64
|
+
// Get common ignore patterns
|
|
65
|
+
const ignorePatterns = this.languageRegistry.getIgnorePatterns();
|
|
74
66
|
const filePaths = await glob(patterns, {
|
|
75
67
|
cwd: this.repoRoot,
|
|
76
68
|
ignore: ignorePatterns,
|
|
@@ -210,10 +202,12 @@ export class RepoIndexer {
|
|
|
210
202
|
}
|
|
211
203
|
analyzeFile(relativePath, content) {
|
|
212
204
|
const lines = content.split('\n');
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
const
|
|
216
|
-
const
|
|
205
|
+
const provider = this.languageRegistry.getForFile(relativePath);
|
|
206
|
+
// Use language provider if available, otherwise use legacy extraction
|
|
207
|
+
const language = provider ? provider.getLanguageName(path.extname(relativePath)) : this.getLanguageLegacy(relativePath);
|
|
208
|
+
const imports = provider ? provider.extractImports(content, relativePath) : this.extractImportsLegacy(content);
|
|
209
|
+
const exports = provider ? provider.extractExports(content, relativePath) : this.extractExportsLegacy(content);
|
|
210
|
+
const symbols = provider ? provider.extractSymbols(content, relativePath) : this.extractSymbolsLegacy(content, relativePath);
|
|
217
211
|
return {
|
|
218
212
|
path: path.join(this.repoRoot, relativePath),
|
|
219
213
|
relativePath,
|
|
@@ -225,7 +219,14 @@ export class RepoIndexer {
|
|
|
225
219
|
exports,
|
|
226
220
|
};
|
|
227
221
|
}
|
|
228
|
-
|
|
222
|
+
/**
|
|
223
|
+
* Get the language registry for external use
|
|
224
|
+
*/
|
|
225
|
+
getLanguageRegistry() {
|
|
226
|
+
return this.languageRegistry;
|
|
227
|
+
}
|
|
228
|
+
// Legacy methods for backward compatibility with unsupported languages
|
|
229
|
+
getLanguageLegacy(filePath) {
|
|
229
230
|
const ext = path.extname(filePath);
|
|
230
231
|
const langMap = {
|
|
231
232
|
'.ts': 'typescript',
|
|
@@ -237,7 +238,7 @@ export class RepoIndexer {
|
|
|
237
238
|
};
|
|
238
239
|
return langMap[ext] || 'unknown';
|
|
239
240
|
}
|
|
240
|
-
|
|
241
|
+
extractImportsLegacy(content) {
|
|
241
242
|
const imports = [];
|
|
242
243
|
const lines = content.split('\n');
|
|
243
244
|
const importRegex = /^import\s+(?:(?:(\{[^}]+\})|(\*\s+as\s+\w+)|(\w+))(?:\s*,\s*)?)*\s*from\s*['"]([^'"]+)['"]/;
|
|
@@ -250,17 +251,14 @@ export class RepoIndexer {
|
|
|
250
251
|
let isDefault = false;
|
|
251
252
|
let isNamespace = false;
|
|
252
253
|
if (match[1]) {
|
|
253
|
-
// Named imports: { a, b, c }
|
|
254
254
|
const named = match[1].replace(/[{}]/g, '').split(',').map(s => s.trim());
|
|
255
255
|
specifiers.push(...named);
|
|
256
256
|
}
|
|
257
257
|
if (match[2]) {
|
|
258
|
-
// Namespace import: * as name
|
|
259
258
|
isNamespace = true;
|
|
260
259
|
specifiers.push(match[2].replace('* as ', '').trim());
|
|
261
260
|
}
|
|
262
261
|
if (match[3]) {
|
|
263
|
-
// Default import
|
|
264
262
|
isDefault = true;
|
|
265
263
|
specifiers.push(match[3]);
|
|
266
264
|
}
|
|
@@ -286,7 +284,7 @@ export class RepoIndexer {
|
|
|
286
284
|
});
|
|
287
285
|
return imports;
|
|
288
286
|
}
|
|
289
|
-
|
|
287
|
+
extractExportsLegacy(content) {
|
|
290
288
|
const exports = [];
|
|
291
289
|
const lines = content.split('\n');
|
|
292
290
|
const patterns = [
|
|
@@ -317,7 +315,7 @@ export class RepoIndexer {
|
|
|
317
315
|
});
|
|
318
316
|
return exports;
|
|
319
317
|
}
|
|
320
|
-
|
|
318
|
+
extractSymbolsLegacy(content, filePath) {
|
|
321
319
|
const symbols = [];
|
|
322
320
|
const lines = content.split('\n');
|
|
323
321
|
const patterns = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-indexer.js","sourceRoot":"","sources":["../../src/core/repo-indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repo-indexer.js","sourceRoot":"","sources":["../../src/core/repo-indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/dashboard/client/src/App.tsx"],"names":[],"mappings":"AA6BA,iBAAS,GAAG,gCAiMX;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
|
+
import { RefreshCw, FileCode, GitBranch, Layers, AlertTriangle, Flame, Clock, Code2, } from 'lucide-react';
|
|
3
|
+
import { useApi } from './hooks/useApi';
|
|
4
|
+
import { fetchOverview, fetchComplexity, fetchSignals, fetchHotPaths, fetchTemporal, } from './api';
|
|
5
|
+
import { Card, StatCard } from './components/Card';
|
|
6
|
+
import { HealthScore } from './components/HealthScore';
|
|
7
|
+
import { LanguageBreakdown } from './components/LanguageBreakdown';
|
|
8
|
+
import { ComplexityHeatmap } from './components/ComplexityHeatmap';
|
|
9
|
+
import { SignalsList } from './components/SignalsList';
|
|
10
|
+
import { HotPathsList } from './components/HotPathsList';
|
|
11
|
+
import { ActivityChart } from './components/ActivityChart';
|
|
12
|
+
import { LoadingPage, LoadingCard } from './components/Loading';
|
|
13
|
+
import { ErrorDisplay } from './components/ErrorDisplay';
|
|
14
|
+
function App() {
|
|
15
|
+
const [refreshKey, setRefreshKey] = useState(0);
|
|
16
|
+
const refreshAll = useCallback(() => {
|
|
17
|
+
setRefreshKey((k) => k + 1);
|
|
18
|
+
}, []);
|
|
19
|
+
const overview = useApi(useCallback(() => fetchOverview(), [refreshKey]));
|
|
20
|
+
const complexity = useApi(useCallback(() => fetchComplexity(), [refreshKey]));
|
|
21
|
+
const signals = useApi(useCallback(() => fetchSignals(), [refreshKey]));
|
|
22
|
+
const hotPaths = useApi(useCallback(() => fetchHotPaths(), [refreshKey]));
|
|
23
|
+
const temporal = useApi(useCallback(() => fetchTemporal(), [refreshKey]));
|
|
24
|
+
// Show loading page if overview is still loading
|
|
25
|
+
if (overview.loading && !overview.data) {
|
|
26
|
+
return <LoadingPage />;
|
|
27
|
+
}
|
|
28
|
+
// Show error if overview failed
|
|
29
|
+
if (overview.error && !overview.data) {
|
|
30
|
+
return (<div className="min-h-screen bg-slate-900 flex items-center justify-center">
|
|
31
|
+
<ErrorDisplay message={`Failed to connect to Codexia: ${overview.error.message}`} onRetry={overview.refetch}/>
|
|
32
|
+
</div>);
|
|
33
|
+
}
|
|
34
|
+
const data = overview.data;
|
|
35
|
+
return (<div className="min-h-screen bg-slate-900">
|
|
36
|
+
{/* Header */}
|
|
37
|
+
<header className="bg-slate-800 border-b border-slate-700">
|
|
38
|
+
<div className="max-w-7xl mx-auto px-6 py-4">
|
|
39
|
+
<div className="flex items-center justify-between">
|
|
40
|
+
<div className="flex items-center gap-4">
|
|
41
|
+
<div className="flex items-center gap-2">
|
|
42
|
+
<Code2 className="w-8 h-8 text-blue-500"/>
|
|
43
|
+
<h1 className="text-2xl font-bold text-white">Codexia</h1>
|
|
44
|
+
</div>
|
|
45
|
+
<span className="text-sm text-slate-500">|</span>
|
|
46
|
+
<span className="text-slate-400">{data.name}</span>
|
|
47
|
+
</div>
|
|
48
|
+
<div className="flex items-center gap-4">
|
|
49
|
+
<span className="text-xs text-slate-500">
|
|
50
|
+
Last indexed: {new Date(data.lastIndexed).toLocaleString()}
|
|
51
|
+
</span>
|
|
52
|
+
<button onClick={refreshAll} disabled={overview.loading} className="inline-flex items-center gap-2 px-4 py-2 bg-blue-600 hover:bg-blue-500 disabled:opacity-50 disabled:cursor-not-allowed rounded-lg text-sm font-medium text-white transition-colors">
|
|
53
|
+
<RefreshCw className={`w-4 h-4 ${overview.loading ? 'animate-spin' : ''}`}/>
|
|
54
|
+
Refresh
|
|
55
|
+
</button>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</header>
|
|
60
|
+
|
|
61
|
+
{/* Main Content */}
|
|
62
|
+
<main className="max-w-7xl mx-auto px-6 py-8">
|
|
63
|
+
{/* Health Score & Stats Row */}
|
|
64
|
+
<div className="grid grid-cols-1 lg:grid-cols-4 gap-6 mb-8">
|
|
65
|
+
{/* Health Score */}
|
|
66
|
+
<Card title="Repository Health" className="lg:col-span-1">
|
|
67
|
+
<div className="flex justify-center py-4">
|
|
68
|
+
<HealthScore score={data.healthScore} size="lg"/>
|
|
69
|
+
</div>
|
|
70
|
+
</Card>
|
|
71
|
+
|
|
72
|
+
{/* Stats */}
|
|
73
|
+
<div className="lg:col-span-3 grid grid-cols-2 md:grid-cols-4 gap-4">
|
|
74
|
+
<StatCard title="Total Files" value={data.totalFiles.toLocaleString()} icon={<FileCode className="w-5 h-5 text-white"/>} color="blue"/>
|
|
75
|
+
<StatCard title="Symbols" value={data.totalSymbols.toLocaleString()} icon={<Layers className="w-5 h-5 text-white"/>} color="purple"/>
|
|
76
|
+
<StatCard title="Dependencies" value={data.totalDependencies.toLocaleString()} icon={<GitBranch className="w-5 h-5 text-white"/>} color="green"/>
|
|
77
|
+
<StatCard title="Signals" value={signals.data?.signals.length ?? '—'} subtitle={signals.data ? `${signals.data.bySeverity.critical ?? 0} critical` : undefined} icon={<AlertTriangle className="w-5 h-5 text-white"/>} color="yellow"/>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
{/* Languages & Complexity Row */}
|
|
82
|
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8">
|
|
83
|
+
<Card title="Languages" subtitle="File distribution by language">
|
|
84
|
+
<LanguageBreakdown languages={data.languages}/>
|
|
85
|
+
</Card>
|
|
86
|
+
|
|
87
|
+
<Card title="Complexity Hotspots" subtitle="Files ranked by complexity score">
|
|
88
|
+
{complexity.loading && !complexity.data ? (<LoadingCard />) : complexity.error ? (<ErrorDisplay message="Failed to load complexity data" onRetry={complexity.refetch}/>) : (<ComplexityHeatmap data={complexity.data}/>)}
|
|
89
|
+
</Card>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
{/* Signals & Hot Paths Row */}
|
|
93
|
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8">
|
|
94
|
+
<Card title="Code Signals" subtitle="Issues and improvements detected" action={signals.data && (<div className="flex gap-2 text-xs">
|
|
95
|
+
{signals.data.bySeverity.critical > 0 && (<span className="px-2 py-1 bg-red-500/20 text-red-400 rounded">
|
|
96
|
+
{signals.data.bySeverity.critical} critical
|
|
97
|
+
</span>)}
|
|
98
|
+
{signals.data.bySeverity.high > 0 && (<span className="px-2 py-1 bg-orange-500/20 text-orange-400 rounded">
|
|
99
|
+
{signals.data.bySeverity.high} high
|
|
100
|
+
</span>)}
|
|
101
|
+
</div>)}>
|
|
102
|
+
{signals.loading && !signals.data ? (<LoadingCard />) : signals.error ? (<ErrorDisplay message="Failed to load signals" onRetry={signals.refetch}/>) : (<SignalsList signals={signals.data.signals} limit={5}/>)}
|
|
103
|
+
</Card>
|
|
104
|
+
|
|
105
|
+
<Card title="Hot Paths" subtitle="High-risk areas requiring attention" action={<Flame className="w-5 h-5 text-orange-400"/>}>
|
|
106
|
+
{hotPaths.loading && !hotPaths.data ? (<LoadingCard />) : hotPaths.error ? (<ErrorDisplay message="Failed to load hot paths" onRetry={hotPaths.refetch}/>) : (<HotPathsList hotPaths={hotPaths.data.hotPaths} limit={5}/>)}
|
|
107
|
+
</Card>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
{/* Activity Chart */}
|
|
111
|
+
<Card title="Development Activity" subtitle="Recent commits and contributor activity" action={<Clock className="w-5 h-5 text-slate-400"/>}>
|
|
112
|
+
{temporal.loading && !temporal.data ? (<LoadingCard />) : temporal.error ? (<ErrorDisplay message="Failed to load activity data" onRetry={temporal.refetch}/>) : (<ActivityChart data={temporal.data}/>)}
|
|
113
|
+
</Card>
|
|
114
|
+
</main>
|
|
115
|
+
|
|
116
|
+
{/* Footer */}
|
|
117
|
+
<footer className="bg-slate-800 border-t border-slate-700 mt-12">
|
|
118
|
+
<div className="max-w-7xl mx-auto px-6 py-4">
|
|
119
|
+
<p className="text-center text-sm text-slate-500">
|
|
120
|
+
Codexia — Engineering Intelligence Layer for Repositories
|
|
121
|
+
</p>
|
|
122
|
+
</div>
|
|
123
|
+
</footer>
|
|
124
|
+
</div>);
|
|
125
|
+
}
|
|
126
|
+
export default App;
|
|
127
|
+
//# sourceMappingURL=App.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../../../src/dashboard/client/src/App.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OverviewData, ComplexityData, GraphData, SignalsData, HotPathsData, TemporalData, LanguagesData } from './types';
|
|
2
|
+
export declare function fetchOverview(): Promise<OverviewData>;
|
|
3
|
+
export declare function fetchComplexity(): Promise<ComplexityData>;
|
|
4
|
+
export declare function fetchGraph(): Promise<GraphData>;
|
|
5
|
+
export declare function fetchSignals(): Promise<SignalsData>;
|
|
6
|
+
export declare function fetchHotPaths(): Promise<HotPathsData>;
|
|
7
|
+
export declare function fetchTemporal(): Promise<TemporalData>;
|
|
8
|
+
export declare function fetchLanguages(): Promise<LanguagesData>;
|
|
9
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/dashboard/client/src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAYjB,wBAAsB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,CAE3D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC,CAE/D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAErD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAEzD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,CAE3D;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,CAE3D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC,CAE7D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const API_BASE = '/api';
|
|
2
|
+
async function fetchJson(endpoint) {
|
|
3
|
+
const response = await fetch(`${API_BASE}${endpoint}`);
|
|
4
|
+
if (!response.ok) {
|
|
5
|
+
throw new Error(`API error: ${response.statusText}`);
|
|
6
|
+
}
|
|
7
|
+
return response.json();
|
|
8
|
+
}
|
|
9
|
+
export async function fetchOverview() {
|
|
10
|
+
return fetchJson('/overview');
|
|
11
|
+
}
|
|
12
|
+
export async function fetchComplexity() {
|
|
13
|
+
return fetchJson('/complexity');
|
|
14
|
+
}
|
|
15
|
+
export async function fetchGraph() {
|
|
16
|
+
return fetchJson('/graph');
|
|
17
|
+
}
|
|
18
|
+
export async function fetchSignals() {
|
|
19
|
+
return fetchJson('/signals');
|
|
20
|
+
}
|
|
21
|
+
export async function fetchHotPaths() {
|
|
22
|
+
return fetchJson('/hotpaths');
|
|
23
|
+
}
|
|
24
|
+
export async function fetchTemporal() {
|
|
25
|
+
return fetchJson('/temporal');
|
|
26
|
+
}
|
|
27
|
+
export async function fetchLanguages() {
|
|
28
|
+
return fetchJson('/languages');
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/dashboard/client/src/api.ts"],"names":[],"mappings":"AAUA,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB,KAAK,UAAU,SAAS,CAAI,QAAgB;IAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,SAAS,CAAe,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,SAAS,CAAiB,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,SAAS,CAAY,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,SAAS,CAAc,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,SAAS,CAAe,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,SAAS,CAAe,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,OAAO,SAAS,CAAgB,YAAY,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityChart.d.ts","sourceRoot":"","sources":["../../../../../src/dashboard/client/src/components/ActivityChart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,UAAU,kBAAkB;IAC1B,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,+BA0GzD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AreaChart, Area, XAxis, YAxis, Tooltip, ResponsiveContainer } from 'recharts';
|
|
2
|
+
import { GitCommit, User } from 'lucide-react';
|
|
3
|
+
export function ActivityChart({ data }) {
|
|
4
|
+
// Convert activity by day to chart format
|
|
5
|
+
const chartData = Object.entries(data.activityByDay)
|
|
6
|
+
.map(([date, count]) => ({
|
|
7
|
+
date: new Date(date).toLocaleDateString('en-US', { month: 'short', day: 'numeric' }),
|
|
8
|
+
commits: count,
|
|
9
|
+
}))
|
|
10
|
+
.slice(-14); // Last 14 days
|
|
11
|
+
return (<div className="space-y-6">
|
|
12
|
+
{/* Activity Chart */}
|
|
13
|
+
<div className="h-48">
|
|
14
|
+
<ResponsiveContainer width="100%" height="100%">
|
|
15
|
+
<AreaChart data={chartData}>
|
|
16
|
+
<defs>
|
|
17
|
+
<linearGradient id="activityGradient" x1="0" y1="0" x2="0" y2="1">
|
|
18
|
+
<stop offset="5%" stopColor="#3b82f6" stopOpacity={0.3}/>
|
|
19
|
+
<stop offset="95%" stopColor="#3b82f6" stopOpacity={0}/>
|
|
20
|
+
</linearGradient>
|
|
21
|
+
</defs>
|
|
22
|
+
<XAxis dataKey="date" stroke="#64748b" tick={{ fontSize: 11 }} tickLine={false} axisLine={false}/>
|
|
23
|
+
<YAxis stroke="#64748b" tick={{ fontSize: 11 }} tickLine={false} axisLine={false} width={30}/>
|
|
24
|
+
<Tooltip contentStyle={{
|
|
25
|
+
backgroundColor: '#1e293b',
|
|
26
|
+
border: '1px solid #475569',
|
|
27
|
+
borderRadius: '8px',
|
|
28
|
+
}} labelStyle={{ color: '#f8fafc' }}/>
|
|
29
|
+
<Area type="monotone" dataKey="commits" stroke="#3b82f6" strokeWidth={2} fill="url(#activityGradient)"/>
|
|
30
|
+
</AreaChart>
|
|
31
|
+
</ResponsiveContainer>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
{/* Recent Changes */}
|
|
35
|
+
<div>
|
|
36
|
+
<h4 className="text-sm font-medium text-slate-400 mb-3 flex items-center gap-2">
|
|
37
|
+
<GitCommit className="w-4 h-4"/>
|
|
38
|
+
Recent Changes
|
|
39
|
+
</h4>
|
|
40
|
+
<div className="space-y-2">
|
|
41
|
+
{data.recentChanges.slice(0, 5).map((change, index) => (<div key={index} className="flex items-center justify-between p-2 rounded-lg bg-slate-900/50">
|
|
42
|
+
<span className="text-sm text-slate-300 truncate flex-1">
|
|
43
|
+
{change.file}
|
|
44
|
+
</span>
|
|
45
|
+
<div className="flex items-center gap-3 text-xs">
|
|
46
|
+
<span className="text-slate-500">
|
|
47
|
+
{change.changeCount} changes
|
|
48
|
+
</span>
|
|
49
|
+
<span className="text-slate-600">
|
|
50
|
+
{new Date(change.lastModified).toLocaleDateString()}
|
|
51
|
+
</span>
|
|
52
|
+
</div>
|
|
53
|
+
</div>))}
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
{/* Top Contributors */}
|
|
58
|
+
<div>
|
|
59
|
+
<h4 className="text-sm font-medium text-slate-400 mb-3 flex items-center gap-2">
|
|
60
|
+
<User className="w-4 h-4"/>
|
|
61
|
+
Top Contributors
|
|
62
|
+
</h4>
|
|
63
|
+
<div className="grid grid-cols-2 gap-2">
|
|
64
|
+
{data.authorStats.slice(0, 4).map((author, index) => (<div key={index} className="p-3 rounded-lg bg-slate-900/50 border border-slate-700">
|
|
65
|
+
<p className="text-sm font-medium text-white truncate">
|
|
66
|
+
{author.author}
|
|
67
|
+
</p>
|
|
68
|
+
<p className="text-xs text-slate-400 mt-1">
|
|
69
|
+
{author.commits} commits • {author.filesChanged} files
|
|
70
|
+
</p>
|
|
71
|
+
</div>))}
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</div>);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=ActivityChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityChart.js","sourceRoot":"","sources":["../../../../../src/dashboard/client/src/components/ActivityChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CardProps {
|
|
3
|
+
title: string;
|
|
4
|
+
subtitle?: string;
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
action?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare function Card({ title, subtitle, children, className, action }: CardProps): React.JSX.Element;
|
|
10
|
+
interface StatCardProps {
|
|
11
|
+
title: string;
|
|
12
|
+
value: string | number;
|
|
13
|
+
subtitle?: string;
|
|
14
|
+
icon?: React.ReactNode;
|
|
15
|
+
trend?: 'up' | 'down' | 'neutral';
|
|
16
|
+
trendValue?: string;
|
|
17
|
+
color?: 'blue' | 'green' | 'yellow' | 'red' | 'purple';
|
|
18
|
+
}
|
|
19
|
+
export declare function StatCard({ title, value, subtitle, icon, color, }: StatCardProps): React.JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/dashboard/client/src/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAc,EAAE,MAAM,EAAE,EAAE,SAAS,qBAapF;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;CACxD;AAUD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,KAAc,GACf,EAAE,aAAa,qBAiBf"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export function Card({ title, subtitle, children, className = '', action }) {
|
|
3
|
+
return (<div className={`bg-slate-800 rounded-xl border border-slate-700 overflow-hidden ${className}`}>
|
|
4
|
+
<div className="px-6 py-4 border-b border-slate-700 flex items-center justify-between">
|
|
5
|
+
<div>
|
|
6
|
+
<h3 className="text-lg font-semibold text-white">{title}</h3>
|
|
7
|
+
{subtitle && <p className="text-sm text-slate-400">{subtitle}</p>}
|
|
8
|
+
</div>
|
|
9
|
+
{action && <div>{action}</div>}
|
|
10
|
+
</div>
|
|
11
|
+
<div className="p-6">{children}</div>
|
|
12
|
+
</div>);
|
|
13
|
+
}
|
|
14
|
+
const colorClasses = {
|
|
15
|
+
blue: 'from-blue-500 to-blue-600',
|
|
16
|
+
green: 'from-green-500 to-green-600',
|
|
17
|
+
yellow: 'from-yellow-500 to-yellow-600',
|
|
18
|
+
red: 'from-red-500 to-red-600',
|
|
19
|
+
purple: 'from-purple-500 to-purple-600',
|
|
20
|
+
};
|
|
21
|
+
export function StatCard({ title, value, subtitle, icon, color = 'blue', }) {
|
|
22
|
+
return (<div className="bg-slate-800 rounded-xl border border-slate-700 p-6">
|
|
23
|
+
<div className="flex items-start justify-between">
|
|
24
|
+
<div>
|
|
25
|
+
<p className="text-sm font-medium text-slate-400">{title}</p>
|
|
26
|
+
<p className="text-3xl font-bold text-white mt-2">{value}</p>
|
|
27
|
+
{subtitle && <p className="text-sm text-slate-500 mt-1">{subtitle}</p>}
|
|
28
|
+
</div>
|
|
29
|
+
{icon && (<div className={`p-3 rounded-lg bg-gradient-to-br ${colorClasses[color]}`}>
|
|
30
|
+
{icon}
|
|
31
|
+
</div>)}
|
|
32
|
+
</div>
|
|
33
|
+
</div>);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=Card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../../../src/dashboard/client/src/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,UAAU,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,EAAa;IACnF,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,mEAAmE,SAAS,EAAE,CAAC,CAC7F;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,uEAAuE,CACpF;QAAA,CAAC,GAAG,CACF;UAAA,CAAC,EAAE,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAC5D;UAAA,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CACnE;QAAA,EAAE,GAAG,CACL;QAAA,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAChC;MAAA,EAAE,GAAG,CACL;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CACtC;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAYD,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,6BAA6B;IACpC,MAAM,EAAE,+BAA+B;IACvC,GAAG,EAAE,yBAAyB;IAC9B,MAAM,EAAE,+BAA+B;CACxC,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,KAAK,GAAG,MAAM,GACA;IACd,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,qDAAqD,CAClE;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,kCAAkC,CAC/C;QAAA,CAAC,GAAG,CACF;UAAA,CAAC,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5D;UAAA,CAAC,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5D;UAAA,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CACxE;QAAA,EAAE,GAAG,CACL;QAAA,CAAC,IAAI,IAAI,CACP,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oCAAoC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CACxE;YAAA,CAAC,IAAI,CACP;UAAA,EAAE,GAAG,CAAC,CACP,CACH;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComplexityData } from '../types';
|
|
2
|
+
interface ComplexityHeatmapProps {
|
|
3
|
+
data: ComplexityData;
|
|
4
|
+
}
|
|
5
|
+
export declare function ComplexityHeatmap({ data }: ComplexityHeatmapProps): import("react").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=ComplexityHeatmap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComplexityHeatmap.d.ts","sourceRoot":"","sources":["../../../../../src/dashboard/client/src/components/ComplexityHeatmap.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,UAAU,sBAAsB;IAC9B,IAAI,EAAE,cAAc,CAAC;CACtB;AAUD,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE,sBAAsB,+BA4DjE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, Cell } from 'recharts';
|
|
2
|
+
function getComplexityColor(score) {
|
|
3
|
+
if (score <= 5)
|
|
4
|
+
return '#22c55e'; // green
|
|
5
|
+
if (score <= 10)
|
|
6
|
+
return '#84cc16'; // lime
|
|
7
|
+
if (score <= 15)
|
|
8
|
+
return '#eab308'; // yellow
|
|
9
|
+
if (score <= 20)
|
|
10
|
+
return '#f97316'; // orange
|
|
11
|
+
return '#ef4444'; // red
|
|
12
|
+
}
|
|
13
|
+
export function ComplexityHeatmap({ data }) {
|
|
14
|
+
const chartData = data.files
|
|
15
|
+
.slice(0, 15)
|
|
16
|
+
.map((file) => ({
|
|
17
|
+
name: file.file.split('/').pop() || file.file,
|
|
18
|
+
fullPath: file.file,
|
|
19
|
+
score: file.score,
|
|
20
|
+
lines: file.metrics.lines,
|
|
21
|
+
functions: file.metrics.functions,
|
|
22
|
+
}));
|
|
23
|
+
if (chartData.length === 0) {
|
|
24
|
+
return (<div className="flex items-center justify-center h-64 text-slate-500">
|
|
25
|
+
No complexity data available
|
|
26
|
+
</div>);
|
|
27
|
+
}
|
|
28
|
+
return (<div className="h-80">
|
|
29
|
+
<ResponsiveContainer width="100%" height="100%">
|
|
30
|
+
<BarChart data={chartData} layout="vertical" margin={{ left: 120 }}>
|
|
31
|
+
<XAxis type="number" domain={[0, 'auto']} stroke="#64748b"/>
|
|
32
|
+
<YAxis type="category" dataKey="name" stroke="#64748b" tick={{ fontSize: 12 }} width={120}/>
|
|
33
|
+
<Tooltip contentStyle={{
|
|
34
|
+
backgroundColor: '#1e293b',
|
|
35
|
+
border: '1px solid #475569',
|
|
36
|
+
borderRadius: '8px',
|
|
37
|
+
}} labelStyle={{ color: '#f8fafc' }} content={({ payload }) => {
|
|
38
|
+
if (!payload || !payload[0])
|
|
39
|
+
return null;
|
|
40
|
+
const item = payload[0].payload;
|
|
41
|
+
return (<div className="bg-slate-800 border border-slate-700 rounded-lg p-3 text-sm">
|
|
42
|
+
<p className="font-medium text-white mb-1">{item.fullPath}</p>
|
|
43
|
+
<p className="text-slate-400">Score: {item.score.toFixed(1)}</p>
|
|
44
|
+
<p className="text-slate-400">Lines: {item.lines}</p>
|
|
45
|
+
<p className="text-slate-400">Functions: {item.functions}</p>
|
|
46
|
+
</div>);
|
|
47
|
+
}}/>
|
|
48
|
+
<Bar dataKey="score" radius={[0, 4, 4, 0]}>
|
|
49
|
+
{chartData.map((entry, index) => (<Cell key={`cell-${index}`} fill={getComplexityColor(entry.score)}/>))}
|
|
50
|
+
</Bar>
|
|
51
|
+
</BarChart>
|
|
52
|
+
</ResponsiveContainer>
|
|
53
|
+
</div>);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ComplexityHeatmap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComplexityHeatmap.js","sourceRoot":"","sources":["../../../../../src/dashboard/client/src/components/ComplexityHeatmap.tsx"],"names":[],"mappings":"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"}
|