@monoes/monomindcli 1.6.4 → 1.6.5
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/.claude/helpers/graphify-freshen.cjs +10 -1
- package/bundled-graph/dist/src/analyze.d.ts +32 -0
- package/bundled-graph/dist/src/analyze.d.ts.map +1 -0
- package/bundled-graph/dist/src/analyze.js +297 -0
- package/bundled-graph/dist/src/analyze.js.map +1 -0
- package/bundled-graph/dist/src/build.d.ts +8 -0
- package/bundled-graph/dist/src/build.d.ts.map +1 -0
- package/bundled-graph/dist/src/build.js +73 -0
- package/bundled-graph/dist/src/build.js.map +1 -0
- package/bundled-graph/dist/src/cache.d.ts +12 -0
- package/bundled-graph/dist/src/cache.d.ts.map +1 -0
- package/bundled-graph/dist/src/cache.js +43 -0
- package/bundled-graph/dist/src/cache.js.map +1 -0
- package/bundled-graph/dist/src/cluster.d.ts +5 -0
- package/bundled-graph/dist/src/cluster.d.ts.map +1 -0
- package/bundled-graph/dist/src/cluster.js +120 -0
- package/bundled-graph/dist/src/cluster.js.map +1 -0
- package/bundled-graph/dist/src/detect.d.ts +21 -0
- package/bundled-graph/dist/src/detect.d.ts.map +1 -0
- package/bundled-graph/dist/src/detect.js +195 -0
- package/bundled-graph/dist/src/detect.js.map +1 -0
- package/bundled-graph/dist/src/export.d.ts +21 -0
- package/bundled-graph/dist/src/export.d.ts.map +1 -0
- package/bundled-graph/dist/src/export.js +68 -0
- package/bundled-graph/dist/src/export.js.map +1 -0
- package/bundled-graph/dist/src/extract/index.d.ts +20 -0
- package/bundled-graph/dist/src/extract/index.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/index.js +158 -0
- package/bundled-graph/dist/src/extract/index.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/c.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/c.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/c.js +88 -0
- package/bundled-graph/dist/src/extract/languages/c.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/cpp.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/cpp.js +121 -0
- package/bundled-graph/dist/src/extract/languages/cpp.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/csharp.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/csharp.js +121 -0
- package/bundled-graph/dist/src/extract/languages/csharp.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/go.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/go.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/go.js +181 -0
- package/bundled-graph/dist/src/extract/languages/go.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/java.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/java.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/java.js +117 -0
- package/bundled-graph/dist/src/extract/languages/java.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/kotlin.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/kotlin.js +112 -0
- package/bundled-graph/dist/src/extract/languages/kotlin.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/php.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/php.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/php.js +130 -0
- package/bundled-graph/dist/src/extract/languages/php.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/python.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/python.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/python.js +230 -0
- package/bundled-graph/dist/src/extract/languages/python.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/ruby.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/ruby.js +120 -0
- package/bundled-graph/dist/src/extract/languages/ruby.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/rust.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/rust.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/rust.js +195 -0
- package/bundled-graph/dist/src/extract/languages/rust.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/scala.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/scala.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/scala.js +110 -0
- package/bundled-graph/dist/src/extract/languages/scala.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/swift.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/swift.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/swift.js +122 -0
- package/bundled-graph/dist/src/extract/languages/swift.js.map +1 -0
- package/bundled-graph/dist/src/extract/languages/typescript.d.ts +3 -0
- package/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/languages/typescript.js +295 -0
- package/bundled-graph/dist/src/extract/languages/typescript.js.map +1 -0
- package/bundled-graph/dist/src/extract/semantic.d.ts +38 -0
- package/bundled-graph/dist/src/extract/semantic.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/semantic.js +242 -0
- package/bundled-graph/dist/src/extract/semantic.js.map +1 -0
- package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +48 -0
- package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/tree-sitter-runner.js +137 -0
- package/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +1 -0
- package/bundled-graph/dist/src/extract/types.d.ts +7 -0
- package/bundled-graph/dist/src/extract/types.d.ts.map +1 -0
- package/bundled-graph/dist/src/extract/types.js +2 -0
- package/bundled-graph/dist/src/extract/types.js.map +1 -0
- package/bundled-graph/dist/src/index.d.ts +28 -0
- package/bundled-graph/dist/src/index.d.ts.map +1 -0
- package/bundled-graph/dist/src/index.js +26 -0
- package/bundled-graph/dist/src/index.js.map +1 -0
- package/bundled-graph/dist/src/pipeline.d.ts +27 -0
- package/bundled-graph/dist/src/pipeline.d.ts.map +1 -0
- package/bundled-graph/dist/src/pipeline.js +269 -0
- package/bundled-graph/dist/src/pipeline.js.map +1 -0
- package/bundled-graph/dist/src/report.d.ts +26 -0
- package/bundled-graph/dist/src/report.d.ts.map +1 -0
- package/bundled-graph/dist/src/report.js +214 -0
- package/bundled-graph/dist/src/report.js.map +1 -0
- package/bundled-graph/dist/src/types.d.ts +124 -0
- package/bundled-graph/dist/src/types.d.ts.map +1 -0
- package/bundled-graph/dist/src/types.js +2 -0
- package/bundled-graph/dist/src/types.js.map +1 -0
- package/bundled-graph/dist/src/visualize.d.ts +4 -0
- package/bundled-graph/dist/src/visualize.d.ts.map +1 -0
- package/bundled-graph/dist/src/visualize.js +574 -0
- package/bundled-graph/dist/src/visualize.js.map +1 -0
- package/bundled-graph/dist/tsconfig.tsbuildinfo +1 -0
- package/bundled-graph/package.json +57 -0
- package/package.json +9 -2
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate GRAPH_REPORT.md — the human-readable audit trail.
|
|
3
|
+
* Mirrors the output format of Python graphify's report.py.
|
|
4
|
+
*/
|
|
5
|
+
import { basename } from 'path';
|
|
6
|
+
import { cohesionScore } from './cluster.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Helpers
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
/** True if the node label matches its own filename — AST file-hub node. */
|
|
11
|
+
function isFileNode(graph, nodeId) {
|
|
12
|
+
const label = graph.getNodeAttribute(nodeId, 'label') || '';
|
|
13
|
+
const sourceFile = graph.getNodeAttribute(nodeId, 'sourceFile') || '';
|
|
14
|
+
if (!label || !sourceFile)
|
|
15
|
+
return false;
|
|
16
|
+
if (label === basename(sourceFile))
|
|
17
|
+
return true;
|
|
18
|
+
if (label.startsWith('.') && label.endsWith('()'))
|
|
19
|
+
return true;
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
/** Auto-derive a community label from its member nodes' source directories. */
|
|
23
|
+
function communityLabel(graph, memberIds) {
|
|
24
|
+
const dirCounts = {};
|
|
25
|
+
for (const id of memberIds) {
|
|
26
|
+
const src = graph.getNodeAttribute(id, 'sourceFile') || '';
|
|
27
|
+
if (!src)
|
|
28
|
+
continue;
|
|
29
|
+
const parts = src.split('/');
|
|
30
|
+
const dir = parts.length > 1 ? parts[parts.length - 2] : parts[0];
|
|
31
|
+
dirCounts[dir] = (dirCounts[dir] ?? 0) + 1;
|
|
32
|
+
}
|
|
33
|
+
const sorted = Object.entries(dirCounts).sort(([, a], [, b]) => b - a);
|
|
34
|
+
return sorted.length > 0 ? sorted[0][0] : 'misc';
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Main generator
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
/**
|
|
40
|
+
* Generate the full markdown report string.
|
|
41
|
+
*
|
|
42
|
+
* @param graph - The annotated Graphology graph (with `community` attributes set)
|
|
43
|
+
* @param analysis - Result of buildAnalysis()
|
|
44
|
+
* @param cohesionScores - Map of communityId → cohesion score (0–1)
|
|
45
|
+
* @param options - Optional metadata (projectPath, tokenCost, corpusStats, questions)
|
|
46
|
+
*/
|
|
47
|
+
export function generateReport(graph, analysis, cohesionScores, options = {}) {
|
|
48
|
+
const today = new Date().toISOString().split('T')[0];
|
|
49
|
+
const root = options.projectPath ?? '.';
|
|
50
|
+
const scores = cohesionScores ?? {};
|
|
51
|
+
// Confidence breakdown
|
|
52
|
+
const totalEdges = graph.size || 1;
|
|
53
|
+
const confCounts = {};
|
|
54
|
+
const infScores = [];
|
|
55
|
+
graph.forEachEdge((_, attrs) => {
|
|
56
|
+
const c = attrs.confidence || 'EXTRACTED';
|
|
57
|
+
confCounts[c] = (confCounts[c] ?? 0) + 1;
|
|
58
|
+
if (c === 'INFERRED') {
|
|
59
|
+
const cs = attrs.confidenceScore;
|
|
60
|
+
if (cs !== undefined)
|
|
61
|
+
infScores.push(cs);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const extPct = Math.round((confCounts['EXTRACTED'] ?? 0) / totalEdges * 100);
|
|
65
|
+
const infPct = Math.round((confCounts['INFERRED'] ?? 0) / totalEdges * 100);
|
|
66
|
+
const ambPct = Math.round((confCounts['AMBIGUOUS'] ?? 0) / totalEdges * 100);
|
|
67
|
+
const infAvg = infScores.length > 0
|
|
68
|
+
? (infScores.reduce((a, b) => a + b, 0) / infScores.length).toFixed(2)
|
|
69
|
+
: null;
|
|
70
|
+
const lines = [
|
|
71
|
+
`# Graph Report - ${root} (${today})`,
|
|
72
|
+
'',
|
|
73
|
+
'## Corpus Check',
|
|
74
|
+
];
|
|
75
|
+
// Corpus check
|
|
76
|
+
const cs = options.corpusStats;
|
|
77
|
+
if (cs?.warning) {
|
|
78
|
+
lines.push(`- ${cs.warning}`);
|
|
79
|
+
}
|
|
80
|
+
else if (cs) {
|
|
81
|
+
lines.push(`- ${cs.totalFiles} files · ~${cs.totalWords.toLocaleString()} words`);
|
|
82
|
+
lines.push('- Verdict: corpus is large enough that graph structure adds value.');
|
|
83
|
+
}
|
|
84
|
+
// Summary
|
|
85
|
+
const infEdgeCount = confCounts['INFERRED'] ?? 0;
|
|
86
|
+
const infTag = infAvg !== null
|
|
87
|
+
? ` · INFERRED: ${infEdgeCount} edges (avg confidence: ${infAvg})`
|
|
88
|
+
: '';
|
|
89
|
+
const tokenCost = options.tokenCost;
|
|
90
|
+
lines.push('', '## Summary');
|
|
91
|
+
lines.push(`- ${graph.order} nodes · ${graph.size} edges · ${analysis.stats.communities} communities detected`);
|
|
92
|
+
lines.push(`- Extraction: ${extPct}% EXTRACTED · ${infPct}% INFERRED · ${ambPct}% AMBIGUOUS${infTag}`);
|
|
93
|
+
if (tokenCost) {
|
|
94
|
+
lines.push(`- Token cost: ${tokenCost.input.toLocaleString()} input · ${tokenCost.output.toLocaleString()} output`);
|
|
95
|
+
}
|
|
96
|
+
// God nodes
|
|
97
|
+
lines.push('', '## God Nodes (most connected - your core abstractions)');
|
|
98
|
+
analysis.godNodes.forEach((node, i) => {
|
|
99
|
+
lines.push(`${i + 1}. \`${node.label}\` - ${node.degree} edges`);
|
|
100
|
+
});
|
|
101
|
+
// Surprising connections
|
|
102
|
+
lines.push('', '## Surprising Connections (you probably didn\'t know these)');
|
|
103
|
+
if (analysis.surprises.length > 0) {
|
|
104
|
+
for (const s of analysis.surprises) {
|
|
105
|
+
const conf = s.confidence;
|
|
106
|
+
const confTag = conf === 'INFERRED'
|
|
107
|
+
? `INFERRED ${s.confidenceScore?.toFixed(2) ?? ''}`
|
|
108
|
+
: conf;
|
|
109
|
+
const semTag = s.relation === 'semantically_similar_to' ? ' [semantically similar]' : '';
|
|
110
|
+
lines.push(`- \`${s.from}\` --${s.relation}--> \`${s.to}\` [${confTag}]${semTag}`);
|
|
111
|
+
lines.push(` ${s.fromFile} → ${s.toFile}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
lines.push('- None detected - all connections are within the same source files.');
|
|
116
|
+
}
|
|
117
|
+
// Hyperedges (stored in graph metadata)
|
|
118
|
+
const hyperedges = graph.getAttribute('hyperedges') ?? [];
|
|
119
|
+
if (hyperedges.length > 0) {
|
|
120
|
+
lines.push('', '## Hyperedges (group relationships)');
|
|
121
|
+
for (const h of hyperedges) {
|
|
122
|
+
const he = h;
|
|
123
|
+
const nodeLabels = (he.nodes ?? []).join(', ');
|
|
124
|
+
const conf = he.confidence ?? 'INFERRED';
|
|
125
|
+
const cs2 = he.confidenceScore;
|
|
126
|
+
const confTag = cs2 !== undefined ? `${conf} ${cs2.toFixed(2)}` : conf;
|
|
127
|
+
lines.push(`- **${he.label ?? ''}** — ${nodeLabels} [${confTag}]`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Communities
|
|
131
|
+
lines.push('', '## Communities');
|
|
132
|
+
for (const [cidStr, memberIds] of Object.entries(analysis.communities)) {
|
|
133
|
+
const cid = Number(cidStr);
|
|
134
|
+
const label = communityLabel(graph, memberIds);
|
|
135
|
+
const score = scores[cid] !== undefined ? scores[cid] : cohesionScore(graph, memberIds);
|
|
136
|
+
const realNodes = memberIds.filter((id) => graph.hasNode(id) && !isFileNode(graph, id));
|
|
137
|
+
const display = realNodes
|
|
138
|
+
.slice(0, 8)
|
|
139
|
+
.map((id) => graph.getNodeAttribute(id, 'label') || id);
|
|
140
|
+
const suffix = realNodes.length > 8 ? ` (+${realNodes.length - 8} more)` : '';
|
|
141
|
+
lines.push('');
|
|
142
|
+
lines.push(`### Community ${cid} - "${label}"`);
|
|
143
|
+
lines.push(`Cohesion: ${score.toFixed(2)}`);
|
|
144
|
+
lines.push(`Nodes (${realNodes.length}): ${display.join(', ')}${suffix}`);
|
|
145
|
+
}
|
|
146
|
+
// Ambiguous edges
|
|
147
|
+
const ambiguous = [];
|
|
148
|
+
graph.forEachEdge((_, attrs, source, target) => {
|
|
149
|
+
if (attrs.confidence === 'AMBIGUOUS') {
|
|
150
|
+
ambiguous.push({ u: source, v: target, attrs: attrs });
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
if (ambiguous.length > 0) {
|
|
154
|
+
lines.push('', '## Ambiguous Edges - Review These');
|
|
155
|
+
for (const { u, v, attrs } of ambiguous) {
|
|
156
|
+
const ul = graph.getNodeAttribute(u, 'label') || u;
|
|
157
|
+
const vl = graph.getNodeAttribute(v, 'label') || v;
|
|
158
|
+
lines.push(`- \`${ul}\` → \`${vl}\` [AMBIGUOUS]`);
|
|
159
|
+
lines.push(` ${attrs.sourceFile || ''} · relation: ${attrs.relation || 'unknown'}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Knowledge gaps
|
|
163
|
+
const isolated = [];
|
|
164
|
+
graph.forEachNode((id) => {
|
|
165
|
+
if (graph.degree(id) <= 1 && !isFileNode(graph, id)) {
|
|
166
|
+
isolated.push(id);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
const thinCommunities = Object.entries(analysis.communities).filter(([, nodes]) => nodes.length < 3);
|
|
170
|
+
const gapCount = isolated.length + thinCommunities.length;
|
|
171
|
+
if (gapCount > 0 || ambPct > 20) {
|
|
172
|
+
lines.push('', '## Knowledge Gaps');
|
|
173
|
+
if (isolated.length > 0) {
|
|
174
|
+
const labels = isolated
|
|
175
|
+
.slice(0, 5)
|
|
176
|
+
.map((id) => graph.getNodeAttribute(id, 'label') || id);
|
|
177
|
+
const suffix = isolated.length > 5 ? ` (+${isolated.length - 5} more)` : '';
|
|
178
|
+
lines.push(`- **${isolated.length} isolated node(s):** ${labels.map((l) => `\`${l}\``).join(', ')}${suffix}`);
|
|
179
|
+
lines.push(' These have ≤1 connection - possible missing edges or undocumented components.');
|
|
180
|
+
}
|
|
181
|
+
for (const [cidStr, nodes] of thinCommunities) {
|
|
182
|
+
const cid = Number(cidStr);
|
|
183
|
+
const label = communityLabel(graph, nodes);
|
|
184
|
+
const nodeLabels = nodes
|
|
185
|
+
.map((id) => graph.getNodeAttribute(id, 'label') || id);
|
|
186
|
+
lines.push(`- **Thin community \`${label}\`** (${nodes.length} nodes): ${nodeLabels.map((l) => `\`${l}\``).join(', ')}`);
|
|
187
|
+
lines.push(' Too small to be a meaningful cluster - may be noise or needs more connections extracted.');
|
|
188
|
+
}
|
|
189
|
+
if (ambPct > 20) {
|
|
190
|
+
lines.push(`- **High ambiguity: ${ambPct}% of edges are AMBIGUOUS.** Review the Ambiguous Edges section above.`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Suggested questions
|
|
194
|
+
const questions = options.questions ?? [];
|
|
195
|
+
if (questions.length > 0) {
|
|
196
|
+
lines.push('', '## Suggested Questions');
|
|
197
|
+
const noSignal = questions.length === 1 && questions[0].type === 'ISOLATED_NODE' && questions[0].nodes.length === 0;
|
|
198
|
+
if (noSignal) {
|
|
199
|
+
lines.push(`_${questions[0].question}_`);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
lines.push('_Questions this graph is uniquely positioned to answer:_');
|
|
203
|
+
lines.push('');
|
|
204
|
+
for (const q of questions) {
|
|
205
|
+
if (q.question) {
|
|
206
|
+
lines.push(`- **${q.question}**`);
|
|
207
|
+
lines.push(` _Priority: ${q.priority}. Nodes: ${q.nodes.slice(0, 3).map((n) => `\`${n}\``).join(', ')}_`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return lines.join('\n');
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/report.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAe7C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,2EAA2E;AAC3E,SAAS,UAAU,CAAC,KAAY,EAAE,MAAc;IAC9C,MAAM,KAAK,GAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAY,IAAI,EAAE,CAAC;IACxE,MAAM,UAAU,GAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAY,IAAI,EAAE,CAAC;IAClF,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,KAAK,KAAK,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,SAAS,cAAc,CAAC,KAAY,EAAE,SAAmB;IACvD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,YAAY,CAAY,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAY,EACZ,QAAuB,EACvB,cAAuC,EACvC,UAAyB,EAAE;IAE3B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;IACxC,MAAM,MAAM,GAAG,cAAc,IAAI,EAAE,CAAC;IAEpC,uBAAuB;IACvB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAI,KAAK,CAAC,UAAqB,IAAI,WAAW,CAAC;QACtD,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,KAAK,CAAC,eAAqC,CAAC;YACvD,IAAI,EAAE,KAAK,SAAS;gBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAK,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAM,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAK,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,KAAK,GAAa;QACtB,oBAAoB,IAAI,MAAM,KAAK,GAAG;QACtC,EAAE;QACF,iBAAiB;KAClB,CAAC;IAEF,eAAe;IACf,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;SAAM,IAAI,EAAE,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,aAAa,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACnF,CAAC;IAED,UAAU;IACV,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI;QAC5B,CAAC,CAAC,gBAAgB,YAAY,2BAA2B,MAAM,GAAG;QAClE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,YAAY,QAAQ,CAAC,KAAK,CAAC,WAAW,uBAAuB,CACpG,CAAC;IACF,KAAK,CAAC,IAAI,CACR,iBAAiB,MAAM,iBAAiB,MAAM,gBAAgB,MAAM,cAAc,MAAM,EAAE,CAC3F,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CACR,iBAAiB,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CACxG,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,wDAAwD,CAAC,CAAC;IACzE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,6DAA6D,CAAC,CAAC;IAC9E,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,KAAK,UAAU;gBACjC,CAAC,CAAC,YAAc,CAAwC,CAAC,eAAsC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnH,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,KAAK,yBAAyB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,EAAE,QAAQ,OAAO,IAAI,MAAM,EAAE,CACxE,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAe,IAAI,EAAE,CAAC;IACzE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qCAAqC,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,CAA4B,CAAC;YACxC,MAAM,UAAU,GAAG,CAAE,EAAE,CAAC,KAAkB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAI,EAAE,CAAC,UAAqB,IAAI,UAAU,CAAC;YACrD,MAAM,GAAG,GAAG,EAAE,CAAC,eAAqC,CAAC;YACrD,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC,OAAQ,EAAE,CAAC,KAAgB,IAAI,EAAE,QAAQ,UAAU,KAAK,OAAO,GAAG,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,cAAc;IACd,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACjC,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,SAAS;aACtB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAY,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,UAAU,SAAS,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,kBAAkB;IAClB,MAAM,SAAS,GAAoE,EAAE,CAAC;IACtF,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAK,KAAK,CAAC,UAAqB,KAAK,WAAW,EAAE,CAAC;YACjD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAgC,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mCAAmC,CAAC,CAAC;QACpD,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,SAAS,EAAE,CAAC;YACxC,MAAM,EAAE,GAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAY,IAAI,CAAC,CAAC;YAC/D,MAAM,EAAE,GAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAY,IAAI,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CACR,KAAM,KAAK,CAAC,UAAqB,IAAI,EAAE,gBAAiB,KAAK,CAAC,QAAmB,IAAI,SAAS,EAAE,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CACjE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAChC,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAE1D,IAAI,QAAQ,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,QAAQ;iBACpB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAY,IAAI,EAAE,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,KAAK,CAAC,IAAI,CACR,OAAO,QAAQ,CAAC,MAAM,wBAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAClG,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,KAAK;iBACrB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAY,IAAI,EAAE,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,SAAS,KAAK,CAAC,MAAM,YAAY,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzH,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CACR,uBAAuB,MAAM,uEAAuE,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QACpH,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7G,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
export type Confidence = 'EXTRACTED' | 'INFERRED' | 'AMBIGUOUS';
|
|
2
|
+
export type FileType = 'code' | 'document' | 'paper' | 'image' | 'unknown';
|
|
3
|
+
export interface GraphNode {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
fileType: FileType;
|
|
7
|
+
sourceFile: string;
|
|
8
|
+
sourceLocation?: string;
|
|
9
|
+
community?: number;
|
|
10
|
+
degree?: number;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface GraphEdge {
|
|
14
|
+
source: string;
|
|
15
|
+
target: string;
|
|
16
|
+
relation: string;
|
|
17
|
+
confidence: Confidence;
|
|
18
|
+
confidenceScore?: number;
|
|
19
|
+
sourceFile?: string;
|
|
20
|
+
sourceLocation?: string;
|
|
21
|
+
weight?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface ExtractionResult {
|
|
24
|
+
nodes: GraphNode[];
|
|
25
|
+
edges: GraphEdge[];
|
|
26
|
+
hyperedges?: HyperEdge[];
|
|
27
|
+
filesProcessed: number;
|
|
28
|
+
fromCache: number;
|
|
29
|
+
errors: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface HyperEdge {
|
|
32
|
+
label: string;
|
|
33
|
+
nodes: string[];
|
|
34
|
+
confidence: Confidence;
|
|
35
|
+
confidenceScore?: number;
|
|
36
|
+
}
|
|
37
|
+
export interface GraphAnalysis {
|
|
38
|
+
godNodes: GodNode[];
|
|
39
|
+
surprises: SurpriseEdge[];
|
|
40
|
+
communities: Record<number, string[]>;
|
|
41
|
+
stats: GraphStats;
|
|
42
|
+
}
|
|
43
|
+
export interface GodNode {
|
|
44
|
+
id: string;
|
|
45
|
+
label: string;
|
|
46
|
+
degree: number;
|
|
47
|
+
community?: number;
|
|
48
|
+
sourceFile: string;
|
|
49
|
+
neighbors: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface SurpriseEdge {
|
|
52
|
+
from: string;
|
|
53
|
+
fromCommunity: number;
|
|
54
|
+
fromFile: string;
|
|
55
|
+
to: string;
|
|
56
|
+
toCommunity: number;
|
|
57
|
+
toFile: string;
|
|
58
|
+
relation: string;
|
|
59
|
+
confidence: Confidence;
|
|
60
|
+
score: number;
|
|
61
|
+
}
|
|
62
|
+
export interface GraphStats {
|
|
63
|
+
nodes: number;
|
|
64
|
+
edges: number;
|
|
65
|
+
communities: number;
|
|
66
|
+
confidence: Record<Confidence, number>;
|
|
67
|
+
fileTypes: Record<string, number>;
|
|
68
|
+
topRelations: Record<string, number>;
|
|
69
|
+
isDirected: boolean;
|
|
70
|
+
graphPath?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface SerializedGraph {
|
|
73
|
+
version: string;
|
|
74
|
+
builtAt: string;
|
|
75
|
+
projectPath: string;
|
|
76
|
+
nodes: Array<{
|
|
77
|
+
id: string;
|
|
78
|
+
} & Record<string, unknown>>;
|
|
79
|
+
links: Array<{
|
|
80
|
+
source: string;
|
|
81
|
+
target: string;
|
|
82
|
+
} & Record<string, unknown>>;
|
|
83
|
+
directed: boolean;
|
|
84
|
+
multigraph: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface BuildOptions {
|
|
87
|
+
codeOnly?: boolean;
|
|
88
|
+
outputDir?: string;
|
|
89
|
+
maxFileSizeBytes?: number;
|
|
90
|
+
excludePatterns?: string[];
|
|
91
|
+
languages?: string[];
|
|
92
|
+
}
|
|
93
|
+
export interface ClassifiedFile {
|
|
94
|
+
path: string;
|
|
95
|
+
fileType: FileType;
|
|
96
|
+
language?: string;
|
|
97
|
+
sizeBytes: number;
|
|
98
|
+
}
|
|
99
|
+
export interface GraphQuestion {
|
|
100
|
+
type: 'AMBIGUOUS_EDGE' | 'BRIDGE_NODE' | 'INFERRED_GOD_NODE' | 'ISOLATED_NODE' | 'LOW_COHESION_COMMUNITY';
|
|
101
|
+
question: string;
|
|
102
|
+
nodes: string[];
|
|
103
|
+
priority: 'high' | 'medium' | 'low';
|
|
104
|
+
}
|
|
105
|
+
export interface GraphDiff {
|
|
106
|
+
addedNodes: string[];
|
|
107
|
+
removedNodes: string[];
|
|
108
|
+
addedEdges: Array<{
|
|
109
|
+
source: string;
|
|
110
|
+
target: string;
|
|
111
|
+
relation: string;
|
|
112
|
+
}>;
|
|
113
|
+
removedEdges: Array<{
|
|
114
|
+
source: string;
|
|
115
|
+
target: string;
|
|
116
|
+
relation: string;
|
|
117
|
+
}>;
|
|
118
|
+
communityChanges: Array<{
|
|
119
|
+
node: string;
|
|
120
|
+
oldCommunity: number;
|
|
121
|
+
newCommunity: number;
|
|
122
|
+
}>;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SerializedGraph } from './types.js';
|
|
2
|
+
/** Export a rich, self-contained HTML knowledge graph explorer using vis-network. */
|
|
3
|
+
export declare function exportHTML(serialized: SerializedGraph, outputDir: string): string;
|
|
4
|
+
//# sourceMappingURL=visualize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visualize.d.ts","sourceRoot":"","sources":["../../src/visualize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoBlD,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAwjBjF"}
|