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.
Files changed (198) hide show
  1. package/CHANGELOG.md +55 -51
  2. package/README.md +67 -0
  3. package/dist/ai/config.d.ts +11 -0
  4. package/dist/ai/config.d.ts.map +1 -0
  5. package/dist/ai/config.js +51 -0
  6. package/dist/ai/config.js.map +1 -0
  7. package/dist/ai/explainer.d.ts +32 -0
  8. package/dist/ai/explainer.d.ts.map +1 -0
  9. package/dist/ai/explainer.js +118 -0
  10. package/dist/ai/explainer.js.map +1 -0
  11. package/dist/ai/index.d.ts +23 -0
  12. package/dist/ai/index.d.ts.map +1 -0
  13. package/dist/ai/index.js +47 -0
  14. package/dist/ai/index.js.map +1 -0
  15. package/dist/ai/prompts/impact-explain.d.ts +6 -0
  16. package/dist/ai/prompts/impact-explain.d.ts.map +1 -0
  17. package/dist/ai/prompts/impact-explain.js +50 -0
  18. package/dist/ai/prompts/impact-explain.js.map +1 -0
  19. package/dist/ai/prompts/pr-describe.d.ts +13 -0
  20. package/dist/ai/prompts/pr-describe.d.ts.map +1 -0
  21. package/dist/ai/prompts/pr-describe.js +65 -0
  22. package/dist/ai/prompts/pr-describe.js.map +1 -0
  23. package/dist/ai/prompts/pr-review.d.ts +18 -0
  24. package/dist/ai/prompts/pr-review.d.ts.map +1 -0
  25. package/dist/ai/prompts/pr-review.js +61 -0
  26. package/dist/ai/prompts/pr-review.js.map +1 -0
  27. package/dist/ai/provider.d.ts +6 -0
  28. package/dist/ai/provider.d.ts.map +1 -0
  29. package/dist/ai/provider.js +19 -0
  30. package/dist/ai/provider.js.map +1 -0
  31. package/dist/ai/providers/anthropic.d.ts +14 -0
  32. package/dist/ai/providers/anthropic.d.ts.map +1 -0
  33. package/dist/ai/providers/anthropic.js +53 -0
  34. package/dist/ai/providers/anthropic.js.map +1 -0
  35. package/dist/ai/providers/ollama.d.ts +13 -0
  36. package/dist/ai/providers/ollama.d.ts.map +1 -0
  37. package/dist/ai/providers/ollama.js +64 -0
  38. package/dist/ai/providers/ollama.js.map +1 -0
  39. package/dist/ai/providers/openai.d.ts +14 -0
  40. package/dist/ai/providers/openai.d.ts.map +1 -0
  41. package/dist/ai/providers/openai.js +42 -0
  42. package/dist/ai/providers/openai.js.map +1 -0
  43. package/dist/ai/types.d.ts +29 -0
  44. package/dist/ai/types.d.ts.map +1 -0
  45. package/dist/ai/types.js +5 -0
  46. package/dist/ai/types.js.map +1 -0
  47. package/dist/cli/commands/dashboard.d.ts +3 -0
  48. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  49. package/dist/cli/commands/dashboard.js +30 -0
  50. package/dist/cli/commands/dashboard.js.map +1 -0
  51. package/dist/cli/commands/graph.js +1 -1
  52. package/dist/cli/commands/graph.js.map +1 -1
  53. package/dist/cli/commands/impact.d.ts.map +1 -1
  54. package/dist/cli/commands/impact.js +23 -0
  55. package/dist/cli/commands/impact.js.map +1 -1
  56. package/dist/cli/commands/pr-report.d.ts.map +1 -1
  57. package/dist/cli/commands/pr-report.js +49 -0
  58. package/dist/cli/commands/pr-report.js.map +1 -1
  59. package/dist/cli/engine.d.ts +65 -2
  60. package/dist/cli/engine.d.ts.map +1 -1
  61. package/dist/cli/engine.js +136 -2
  62. package/dist/cli/engine.js.map +1 -1
  63. package/dist/cli/index.d.ts +1 -0
  64. package/dist/cli/index.js +3 -0
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/cli/interactive.js +1 -1
  67. package/dist/cli/interactive.js.map +1 -1
  68. package/dist/core/dependency-graph.d.ts +3 -1
  69. package/dist/core/dependency-graph.d.ts.map +1 -1
  70. package/dist/core/dependency-graph.js +20 -7
  71. package/dist/core/dependency-graph.js.map +1 -1
  72. package/dist/core/language-providers/index.d.ts +9 -0
  73. package/dist/core/language-providers/index.d.ts.map +1 -0
  74. package/dist/core/language-providers/index.js +12 -0
  75. package/dist/core/language-providers/index.js.map +1 -0
  76. package/dist/core/language-providers/providers/go.d.ts +20 -0
  77. package/dist/core/language-providers/providers/go.d.ts.map +1 -0
  78. package/dist/core/language-providers/providers/go.js +256 -0
  79. package/dist/core/language-providers/providers/go.js.map +1 -0
  80. package/dist/core/language-providers/providers/java.d.ts +20 -0
  81. package/dist/core/language-providers/providers/java.d.ts.map +1 -0
  82. package/dist/core/language-providers/providers/java.js +234 -0
  83. package/dist/core/language-providers/providers/java.js.map +1 -0
  84. package/dist/core/language-providers/providers/python.d.ts +20 -0
  85. package/dist/core/language-providers/providers/python.d.ts.map +1 -0
  86. package/dist/core/language-providers/providers/python.js +267 -0
  87. package/dist/core/language-providers/providers/python.js.map +1 -0
  88. package/dist/core/language-providers/providers/ruby.d.ts +20 -0
  89. package/dist/core/language-providers/providers/ruby.d.ts.map +1 -0
  90. package/dist/core/language-providers/providers/ruby.js +281 -0
  91. package/dist/core/language-providers/providers/ruby.js.map +1 -0
  92. package/dist/core/language-providers/providers/rust.d.ts +20 -0
  93. package/dist/core/language-providers/providers/rust.d.ts.map +1 -0
  94. package/dist/core/language-providers/providers/rust.js +384 -0
  95. package/dist/core/language-providers/providers/rust.js.map +1 -0
  96. package/dist/core/language-providers/providers/typescript.d.ts +20 -0
  97. package/dist/core/language-providers/providers/typescript.d.ts.map +1 -0
  98. package/dist/core/language-providers/providers/typescript.js +300 -0
  99. package/dist/core/language-providers/providers/typescript.js.map +1 -0
  100. package/dist/core/language-providers/registry.d.ts +59 -0
  101. package/dist/core/language-providers/registry.d.ts.map +1 -0
  102. package/dist/core/language-providers/registry.js +133 -0
  103. package/dist/core/language-providers/registry.js.map +1 -0
  104. package/dist/core/language-providers/types.d.ts +55 -0
  105. package/dist/core/language-providers/types.d.ts.map +1 -0
  106. package/dist/core/language-providers/types.js +29 -0
  107. package/dist/core/language-providers/types.js.map +1 -0
  108. package/dist/core/repo-indexer.d.ts +10 -4
  109. package/dist/core/repo-indexer.d.ts.map +1 -1
  110. package/dist/core/repo-indexer.js +24 -26
  111. package/dist/core/repo-indexer.js.map +1 -1
  112. package/dist/dashboard/client/src/App.d.ts +3 -0
  113. package/dist/dashboard/client/src/App.d.ts.map +1 -0
  114. package/dist/dashboard/client/src/App.js +127 -0
  115. package/dist/dashboard/client/src/App.js.map +1 -0
  116. package/dist/dashboard/client/src/api.d.ts +9 -0
  117. package/dist/dashboard/client/src/api.d.ts.map +1 -0
  118. package/dist/dashboard/client/src/api.js +30 -0
  119. package/dist/dashboard/client/src/api.js.map +1 -0
  120. package/dist/dashboard/client/src/components/ActivityChart.d.ts +7 -0
  121. package/dist/dashboard/client/src/components/ActivityChart.d.ts.map +1 -0
  122. package/dist/dashboard/client/src/components/ActivityChart.js +76 -0
  123. package/dist/dashboard/client/src/components/ActivityChart.js.map +1 -0
  124. package/dist/dashboard/client/src/components/Card.d.ts +21 -0
  125. package/dist/dashboard/client/src/components/Card.d.ts.map +1 -0
  126. package/dist/dashboard/client/src/components/Card.js +35 -0
  127. package/dist/dashboard/client/src/components/Card.js.map +1 -0
  128. package/dist/dashboard/client/src/components/ComplexityHeatmap.d.ts +7 -0
  129. package/dist/dashboard/client/src/components/ComplexityHeatmap.d.ts.map +1 -0
  130. package/dist/dashboard/client/src/components/ComplexityHeatmap.js +55 -0
  131. package/dist/dashboard/client/src/components/ComplexityHeatmap.js.map +1 -0
  132. package/dist/dashboard/client/src/components/ErrorDisplay.d.ts +7 -0
  133. package/dist/dashboard/client/src/components/ErrorDisplay.d.ts.map +1 -0
  134. package/dist/dashboard/client/src/components/ErrorDisplay.js +14 -0
  135. package/dist/dashboard/client/src/components/ErrorDisplay.js.map +1 -0
  136. package/dist/dashboard/client/src/components/HealthScore.d.ts +7 -0
  137. package/dist/dashboard/client/src/components/HealthScore.d.ts.map +1 -0
  138. package/dist/dashboard/client/src/components/HealthScore.js +66 -0
  139. package/dist/dashboard/client/src/components/HealthScore.js.map +1 -0
  140. package/dist/dashboard/client/src/components/HotPathsList.d.ts +8 -0
  141. package/dist/dashboard/client/src/components/HotPathsList.d.ts.map +1 -0
  142. package/dist/dashboard/client/src/components/HotPathsList.js +59 -0
  143. package/dist/dashboard/client/src/components/HotPathsList.js.map +1 -0
  144. package/dist/dashboard/client/src/components/LanguageBreakdown.d.ts +6 -0
  145. package/dist/dashboard/client/src/components/LanguageBreakdown.d.ts.map +1 -0
  146. package/dist/dashboard/client/src/components/LanguageBreakdown.js +49 -0
  147. package/dist/dashboard/client/src/components/LanguageBreakdown.js.map +1 -0
  148. package/dist/dashboard/client/src/components/Loading.d.ts +4 -0
  149. package/dist/dashboard/client/src/components/Loading.d.ts.map +1 -0
  150. package/dist/dashboard/client/src/components/Loading.js +25 -0
  151. package/dist/dashboard/client/src/components/Loading.js.map +1 -0
  152. package/dist/dashboard/client/src/components/SignalsList.d.ts +8 -0
  153. package/dist/dashboard/client/src/components/SignalsList.d.ts.map +1 -0
  154. package/dist/dashboard/client/src/components/SignalsList.js +70 -0
  155. package/dist/dashboard/client/src/components/SignalsList.js.map +1 -0
  156. package/dist/dashboard/client/src/hooks/useApi.d.ts +9 -0
  157. package/dist/dashboard/client/src/hooks/useApi.d.ts.map +1 -0
  158. package/dist/dashboard/client/src/hooks/useApi.js +19 -0
  159. package/dist/dashboard/client/src/hooks/useApi.js.map +1 -0
  160. package/dist/dashboard/client/src/main.d.ts +2 -0
  161. package/dist/dashboard/client/src/main.d.ts.map +1 -0
  162. package/dist/dashboard/client/src/main.js +8 -0
  163. package/dist/dashboard/client/src/main.js.map +1 -0
  164. package/dist/dashboard/client/src/types.d.ts +85 -0
  165. package/dist/dashboard/client/src/types.d.ts.map +1 -0
  166. package/dist/dashboard/client/src/types.js +2 -0
  167. package/dist/dashboard/client/src/types.js.map +1 -0
  168. package/dist/dashboard/client/vite.config.d.ts +3 -0
  169. package/dist/dashboard/client/vite.config.d.ts.map +1 -0
  170. package/dist/dashboard/client/vite.config.js +24 -0
  171. package/dist/dashboard/client/vite.config.js.map +1 -0
  172. package/dist/dashboard/index.d.ts +3 -0
  173. package/dist/dashboard/index.d.ts.map +1 -0
  174. package/dist/dashboard/index.js +2 -0
  175. package/dist/dashboard/index.js.map +1 -0
  176. package/dist/dashboard/server/index.d.ts +108 -0
  177. package/dist/dashboard/server/index.d.ts.map +1 -0
  178. package/dist/dashboard/server/index.js +740 -0
  179. package/dist/dashboard/server/index.js.map +1 -0
  180. package/dist/index.d.ts +3 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +6 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/mcp/server.js +1 -1
  185. package/dist/mcp/server.js.map +1 -1
  186. package/dist/modules/complexity-engine.d.ts +1 -0
  187. package/dist/modules/complexity-engine.d.ts.map +1 -1
  188. package/dist/modules/complexity-engine.js +26 -18
  189. package/dist/modules/complexity-engine.js.map +1 -1
  190. package/dist/modules/graph-utils.d.ts +7 -2
  191. package/dist/modules/graph-utils.d.ts.map +1 -1
  192. package/dist/modules/graph-utils.js +17 -11
  193. package/dist/modules/graph-utils.js.map +1 -1
  194. package/package.json +9 -4
  195. package/src/dashboard/dist/assets/index-DwKWIJD-.css +1 -0
  196. package/src/dashboard/dist/assets/index-jqRzjhTn.js +226 -0
  197. package/src/dashboard/dist/codexia-icon.svg +10 -0
  198. 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
- const patterns = [
60
- '**/*.ts',
61
- '**/*.tsx',
62
- '**/*.js',
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 language = this.getLanguage(relativePath);
214
- const imports = this.extractImports(content);
215
- const exports = this.extractExports(content);
216
- const symbols = this.extractSymbols(content, relativePath);
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
- getLanguage(filePath) {
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
- extractImports(content) {
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
- extractExports(content) {
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
- extractSymbols(content, filePath) {
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,3 @@
1
+ declare function App(): import("react").JSX.Element;
2
+ export default App;
3
+ //# sourceMappingURL=App.d.ts.map
@@ -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,7 @@
1
+ import type { TemporalData } from '../types';
2
+ interface ActivityChartProps {
3
+ data: TemporalData;
4
+ }
5
+ export declare function ActivityChart({ data }: ActivityChartProps): import("react").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=ActivityChart.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAO3F,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,QAAQ;IAC1C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC,CAAC,OAAO;IAC1C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC,CAAC,SAAS;IAC5C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC,CAAC,SAAS;IAC5C,OAAO,SAAS,CAAC,CAAC,MAAM;AAC1B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAE,IAAI,EAA0B;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK;SACzB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI;QAC7C,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QACzB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;KAClC,CAAC,CAAC,CAAC;IAEN,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,sDAAsD,CACnE;;MACF,EAAE,GAAG,CAAC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CACnB;MAAA,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAC7C;QAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CACjE;UAAA,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAC1D;UAAA,CAAC,KAAK,CACJ,IAAI,CAAC,UAAU,CACf,OAAO,CAAC,MAAM,CACd,MAAM,CAAC,SAAS,CAChB,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACvB,KAAK,CAAC,CAAC,GAAG,CAAC,EAEb;UAAA,CAAC,OAAO,CACN,YAAY,CAAC,CAAC;YACZ,eAAe,EAAE,SAAS;YAC1B,MAAM,EAAE,mBAAmB;YAC3B,YAAY,EAAE,KAAK;SACpB,CAAC,CACF,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CACjC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACvB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAChC,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,6DAA6D,CAC1E;kBAAA,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC7D;kBAAA,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/D;kBAAA,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CACpD;kBAAA,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAC9D;gBAAA,EAAE,GAAG,CAAC,CACP,CAAC;QACJ,CAAC,CAAC,EAEJ;UAAA,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CACxC;YAAA,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAG,CACtE,CAAC,CACJ;UAAA,EAAE,GAAG,CACP;QAAA,EAAE,QAAQ,CACZ;MAAA,EAAE,mBAAmB,CACvB;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}