@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.
Files changed (116) hide show
  1. package/.claude/helpers/graphify-freshen.cjs +10 -1
  2. package/bundled-graph/dist/src/analyze.d.ts +32 -0
  3. package/bundled-graph/dist/src/analyze.d.ts.map +1 -0
  4. package/bundled-graph/dist/src/analyze.js +297 -0
  5. package/bundled-graph/dist/src/analyze.js.map +1 -0
  6. package/bundled-graph/dist/src/build.d.ts +8 -0
  7. package/bundled-graph/dist/src/build.d.ts.map +1 -0
  8. package/bundled-graph/dist/src/build.js +73 -0
  9. package/bundled-graph/dist/src/build.js.map +1 -0
  10. package/bundled-graph/dist/src/cache.d.ts +12 -0
  11. package/bundled-graph/dist/src/cache.d.ts.map +1 -0
  12. package/bundled-graph/dist/src/cache.js +43 -0
  13. package/bundled-graph/dist/src/cache.js.map +1 -0
  14. package/bundled-graph/dist/src/cluster.d.ts +5 -0
  15. package/bundled-graph/dist/src/cluster.d.ts.map +1 -0
  16. package/bundled-graph/dist/src/cluster.js +120 -0
  17. package/bundled-graph/dist/src/cluster.js.map +1 -0
  18. package/bundled-graph/dist/src/detect.d.ts +21 -0
  19. package/bundled-graph/dist/src/detect.d.ts.map +1 -0
  20. package/bundled-graph/dist/src/detect.js +195 -0
  21. package/bundled-graph/dist/src/detect.js.map +1 -0
  22. package/bundled-graph/dist/src/export.d.ts +21 -0
  23. package/bundled-graph/dist/src/export.d.ts.map +1 -0
  24. package/bundled-graph/dist/src/export.js +68 -0
  25. package/bundled-graph/dist/src/export.js.map +1 -0
  26. package/bundled-graph/dist/src/extract/index.d.ts +20 -0
  27. package/bundled-graph/dist/src/extract/index.d.ts.map +1 -0
  28. package/bundled-graph/dist/src/extract/index.js +158 -0
  29. package/bundled-graph/dist/src/extract/index.js.map +1 -0
  30. package/bundled-graph/dist/src/extract/languages/c.d.ts +3 -0
  31. package/bundled-graph/dist/src/extract/languages/c.d.ts.map +1 -0
  32. package/bundled-graph/dist/src/extract/languages/c.js +88 -0
  33. package/bundled-graph/dist/src/extract/languages/c.js.map +1 -0
  34. package/bundled-graph/dist/src/extract/languages/cpp.d.ts +3 -0
  35. package/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +1 -0
  36. package/bundled-graph/dist/src/extract/languages/cpp.js +121 -0
  37. package/bundled-graph/dist/src/extract/languages/cpp.js.map +1 -0
  38. package/bundled-graph/dist/src/extract/languages/csharp.d.ts +3 -0
  39. package/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +1 -0
  40. package/bundled-graph/dist/src/extract/languages/csharp.js +121 -0
  41. package/bundled-graph/dist/src/extract/languages/csharp.js.map +1 -0
  42. package/bundled-graph/dist/src/extract/languages/go.d.ts +3 -0
  43. package/bundled-graph/dist/src/extract/languages/go.d.ts.map +1 -0
  44. package/bundled-graph/dist/src/extract/languages/go.js +181 -0
  45. package/bundled-graph/dist/src/extract/languages/go.js.map +1 -0
  46. package/bundled-graph/dist/src/extract/languages/java.d.ts +3 -0
  47. package/bundled-graph/dist/src/extract/languages/java.d.ts.map +1 -0
  48. package/bundled-graph/dist/src/extract/languages/java.js +117 -0
  49. package/bundled-graph/dist/src/extract/languages/java.js.map +1 -0
  50. package/bundled-graph/dist/src/extract/languages/kotlin.d.ts +3 -0
  51. package/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +1 -0
  52. package/bundled-graph/dist/src/extract/languages/kotlin.js +112 -0
  53. package/bundled-graph/dist/src/extract/languages/kotlin.js.map +1 -0
  54. package/bundled-graph/dist/src/extract/languages/php.d.ts +3 -0
  55. package/bundled-graph/dist/src/extract/languages/php.d.ts.map +1 -0
  56. package/bundled-graph/dist/src/extract/languages/php.js +130 -0
  57. package/bundled-graph/dist/src/extract/languages/php.js.map +1 -0
  58. package/bundled-graph/dist/src/extract/languages/python.d.ts +3 -0
  59. package/bundled-graph/dist/src/extract/languages/python.d.ts.map +1 -0
  60. package/bundled-graph/dist/src/extract/languages/python.js +230 -0
  61. package/bundled-graph/dist/src/extract/languages/python.js.map +1 -0
  62. package/bundled-graph/dist/src/extract/languages/ruby.d.ts +3 -0
  63. package/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +1 -0
  64. package/bundled-graph/dist/src/extract/languages/ruby.js +120 -0
  65. package/bundled-graph/dist/src/extract/languages/ruby.js.map +1 -0
  66. package/bundled-graph/dist/src/extract/languages/rust.d.ts +3 -0
  67. package/bundled-graph/dist/src/extract/languages/rust.d.ts.map +1 -0
  68. package/bundled-graph/dist/src/extract/languages/rust.js +195 -0
  69. package/bundled-graph/dist/src/extract/languages/rust.js.map +1 -0
  70. package/bundled-graph/dist/src/extract/languages/scala.d.ts +3 -0
  71. package/bundled-graph/dist/src/extract/languages/scala.d.ts.map +1 -0
  72. package/bundled-graph/dist/src/extract/languages/scala.js +110 -0
  73. package/bundled-graph/dist/src/extract/languages/scala.js.map +1 -0
  74. package/bundled-graph/dist/src/extract/languages/swift.d.ts +3 -0
  75. package/bundled-graph/dist/src/extract/languages/swift.d.ts.map +1 -0
  76. package/bundled-graph/dist/src/extract/languages/swift.js +122 -0
  77. package/bundled-graph/dist/src/extract/languages/swift.js.map +1 -0
  78. package/bundled-graph/dist/src/extract/languages/typescript.d.ts +3 -0
  79. package/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +1 -0
  80. package/bundled-graph/dist/src/extract/languages/typescript.js +295 -0
  81. package/bundled-graph/dist/src/extract/languages/typescript.js.map +1 -0
  82. package/bundled-graph/dist/src/extract/semantic.d.ts +38 -0
  83. package/bundled-graph/dist/src/extract/semantic.d.ts.map +1 -0
  84. package/bundled-graph/dist/src/extract/semantic.js +242 -0
  85. package/bundled-graph/dist/src/extract/semantic.js.map +1 -0
  86. package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +48 -0
  87. package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +1 -0
  88. package/bundled-graph/dist/src/extract/tree-sitter-runner.js +137 -0
  89. package/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +1 -0
  90. package/bundled-graph/dist/src/extract/types.d.ts +7 -0
  91. package/bundled-graph/dist/src/extract/types.d.ts.map +1 -0
  92. package/bundled-graph/dist/src/extract/types.js +2 -0
  93. package/bundled-graph/dist/src/extract/types.js.map +1 -0
  94. package/bundled-graph/dist/src/index.d.ts +28 -0
  95. package/bundled-graph/dist/src/index.d.ts.map +1 -0
  96. package/bundled-graph/dist/src/index.js +26 -0
  97. package/bundled-graph/dist/src/index.js.map +1 -0
  98. package/bundled-graph/dist/src/pipeline.d.ts +27 -0
  99. package/bundled-graph/dist/src/pipeline.d.ts.map +1 -0
  100. package/bundled-graph/dist/src/pipeline.js +269 -0
  101. package/bundled-graph/dist/src/pipeline.js.map +1 -0
  102. package/bundled-graph/dist/src/report.d.ts +26 -0
  103. package/bundled-graph/dist/src/report.d.ts.map +1 -0
  104. package/bundled-graph/dist/src/report.js +214 -0
  105. package/bundled-graph/dist/src/report.js.map +1 -0
  106. package/bundled-graph/dist/src/types.d.ts +124 -0
  107. package/bundled-graph/dist/src/types.d.ts.map +1 -0
  108. package/bundled-graph/dist/src/types.js +2 -0
  109. package/bundled-graph/dist/src/types.js.map +1 -0
  110. package/bundled-graph/dist/src/visualize.d.ts +4 -0
  111. package/bundled-graph/dist/src/visualize.d.ts.map +1 -0
  112. package/bundled-graph/dist/src/visualize.js +574 -0
  113. package/bundled-graph/dist/src/visualize.js.map +1 -0
  114. package/bundled-graph/dist/tsconfig.tsbuildinfo +1 -0
  115. package/bundled-graph/package.json +57 -0
  116. 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":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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"}