@rangerchaz/aimem 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +380 -0
- package/dist/cli/commands/git.d.ts +6 -0
- package/dist/cli/commands/git.d.ts.map +1 -0
- package/dist/cli/commands/git.js +298 -0
- package/dist/cli/commands/git.js.map +1 -0
- package/dist/cli/commands/hook-session-end.d.ts +7 -0
- package/dist/cli/commands/hook-session-end.d.ts.map +1 -0
- package/dist/cli/commands/hook-session-end.js +109 -0
- package/dist/cli/commands/hook-session-end.js.map +1 -0
- package/dist/cli/commands/hook-session-start.d.ts +7 -0
- package/dist/cli/commands/hook-session-start.d.ts.map +1 -0
- package/dist/cli/commands/hook-session-start.js +116 -0
- package/dist/cli/commands/hook-session-start.js.map +1 -0
- package/dist/cli/commands/import.d.ts +14 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +527 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +32 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/mcp-serve.d.ts +2 -0
- package/dist/cli/commands/mcp-serve.d.ts.map +1 -0
- package/dist/cli/commands/mcp-serve.js +5 -0
- package/dist/cli/commands/mcp-serve.js.map +1 -0
- package/dist/cli/commands/query.d.ts +8 -0
- package/dist/cli/commands/query.d.ts.map +1 -0
- package/dist/cli/commands/query.js +83 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +10 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +504 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts +8 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +90 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +85 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +7 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +46 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/visualize.d.ts +8 -0
- package/dist/cli/commands/visualize.d.ts.map +1 -0
- package/dist/cli/commands/visualize.js +96 -0
- package/dist/cli/commands/visualize.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +114 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/db/index.d.ts +55 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +464 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +4 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +200 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/extractor/index.d.ts +27 -0
- package/dist/extractor/index.d.ts.map +1 -0
- package/dist/extractor/index.js +227 -0
- package/dist/extractor/index.js.map +1 -0
- package/dist/git/extractor.d.ts +30 -0
- package/dist/git/extractor.d.ts.map +1 -0
- package/dist/git/extractor.js +126 -0
- package/dist/git/extractor.js.map +1 -0
- package/dist/git/hooks.d.ts +36 -0
- package/dist/git/hooks.d.ts.map +1 -0
- package/dist/git/hooks.js +142 -0
- package/dist/git/hooks.js.map +1 -0
- package/dist/git/index.d.ts +69 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +250 -0
- package/dist/git/index.js.map +1 -0
- package/dist/indexer/index.d.ts +20 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +173 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/parsers/base.d.ts +19 -0
- package/dist/indexer/parsers/base.d.ts.map +1 -0
- package/dist/indexer/parsers/base.js +46 -0
- package/dist/indexer/parsers/base.js.map +1 -0
- package/dist/indexer/parsers/cpp.d.ts +3 -0
- package/dist/indexer/parsers/cpp.d.ts.map +1 -0
- package/dist/indexer/parsers/cpp.js +180 -0
- package/dist/indexer/parsers/cpp.js.map +1 -0
- package/dist/indexer/parsers/go.d.ts +3 -0
- package/dist/indexer/parsers/go.d.ts.map +1 -0
- package/dist/indexer/parsers/go.js +98 -0
- package/dist/indexer/parsers/go.js.map +1 -0
- package/dist/indexer/parsers/java.d.ts +3 -0
- package/dist/indexer/parsers/java.d.ts.map +1 -0
- package/dist/indexer/parsers/java.js +204 -0
- package/dist/indexer/parsers/java.js.map +1 -0
- package/dist/indexer/parsers/javascript.d.ts +3 -0
- package/dist/indexer/parsers/javascript.d.ts.map +1 -0
- package/dist/indexer/parsers/javascript.js +157 -0
- package/dist/indexer/parsers/javascript.js.map +1 -0
- package/dist/indexer/parsers/kotlin.d.ts +3 -0
- package/dist/indexer/parsers/kotlin.d.ts.map +1 -0
- package/dist/indexer/parsers/kotlin.js +182 -0
- package/dist/indexer/parsers/kotlin.js.map +1 -0
- package/dist/indexer/parsers/php.d.ts +3 -0
- package/dist/indexer/parsers/php.d.ts.map +1 -0
- package/dist/indexer/parsers/php.js +190 -0
- package/dist/indexer/parsers/php.js.map +1 -0
- package/dist/indexer/parsers/python.d.ts +3 -0
- package/dist/indexer/parsers/python.d.ts.map +1 -0
- package/dist/indexer/parsers/python.js +101 -0
- package/dist/indexer/parsers/python.js.map +1 -0
- package/dist/indexer/parsers/ruby.d.ts +3 -0
- package/dist/indexer/parsers/ruby.d.ts.map +1 -0
- package/dist/indexer/parsers/ruby.js +92 -0
- package/dist/indexer/parsers/ruby.js.map +1 -0
- package/dist/indexer/parsers/rust.d.ts +3 -0
- package/dist/indexer/parsers/rust.d.ts.map +1 -0
- package/dist/indexer/parsers/rust.js +190 -0
- package/dist/indexer/parsers/rust.js.map +1 -0
- package/dist/indexer/watcher-daemon.d.ts +2 -0
- package/dist/indexer/watcher-daemon.d.ts.map +1 -0
- package/dist/indexer/watcher-daemon.js +27 -0
- package/dist/indexer/watcher-daemon.js.map +1 -0
- package/dist/indexer/watcher.d.ts +7 -0
- package/dist/indexer/watcher.d.ts.map +1 -0
- package/dist/indexer/watcher.js +77 -0
- package/dist/indexer/watcher.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +241 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/proxy/interceptor-mockttp.d.ts +27 -0
- package/dist/proxy/interceptor-mockttp.d.ts.map +1 -0
- package/dist/proxy/interceptor-mockttp.js +274 -0
- package/dist/proxy/interceptor-mockttp.js.map +1 -0
- package/dist/proxy/proxy-daemon.d.ts +5 -0
- package/dist/proxy/proxy-daemon.d.ts.map +1 -0
- package/dist/proxy/proxy-daemon.js +26 -0
- package/dist/proxy/proxy-daemon.js.map +1 -0
- package/dist/query/index.d.ts +32 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +135 -0
- package/dist/query/index.js.map +1 -0
- package/dist/types/index.d.ts +89 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/visualize/index.d.ts +144 -0
- package/dist/visualize/index.d.ts.map +1 -0
- package/dist/visualize/index.js +707 -0
- package/dist/visualize/index.js.map +1 -0
- package/dist/visualize/server.d.ts +7 -0
- package/dist/visualize/server.d.ts.map +1 -0
- package/dist/visualize/server.js +77 -0
- package/dist/visualize/server.js.map +1 -0
- package/dist/visualize/template.d.ts +3 -0
- package/dist/visualize/template.d.ts.map +1 -0
- package/dist/visualize/template.js +3465 -0
- package/dist/visualize/template.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { Link, Extraction, Project, File, Conversation } from '../types/index.js';
|
|
2
|
+
import type { StructureWithFile } from '../db/index.js';
|
|
3
|
+
export interface CodeSmell {
|
|
4
|
+
type: 'large-file' | 'long-function' | 'too-many-callers' | 'too-many-callees' | 'orphan';
|
|
5
|
+
severity: 'high' | 'medium' | 'low';
|
|
6
|
+
structureId?: number;
|
|
7
|
+
filePath: string;
|
|
8
|
+
name: string;
|
|
9
|
+
metric: number;
|
|
10
|
+
threshold: number;
|
|
11
|
+
description: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CodeSmellsData {
|
|
14
|
+
smells: CodeSmell[];
|
|
15
|
+
summary: {
|
|
16
|
+
high: number;
|
|
17
|
+
medium: number;
|
|
18
|
+
low: number;
|
|
19
|
+
};
|
|
20
|
+
thresholds: {
|
|
21
|
+
largeFile: number;
|
|
22
|
+
longFunction: number;
|
|
23
|
+
tooManyCallers: number;
|
|
24
|
+
tooManyCallees: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface HotspotItem {
|
|
28
|
+
id: number;
|
|
29
|
+
name: string;
|
|
30
|
+
file: string;
|
|
31
|
+
type: string;
|
|
32
|
+
lines?: number;
|
|
33
|
+
inbound?: number;
|
|
34
|
+
outbound?: number;
|
|
35
|
+
total?: number;
|
|
36
|
+
structureCount?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface HotspotsData {
|
|
39
|
+
largestFunctions: HotspotItem[];
|
|
40
|
+
mostConnected: HotspotItem[];
|
|
41
|
+
densestFiles: HotspotItem[];
|
|
42
|
+
hubFunctions: HotspotItem[];
|
|
43
|
+
}
|
|
44
|
+
export interface GalleryItem {
|
|
45
|
+
id: number;
|
|
46
|
+
type: 'decision' | 'pattern' | 'rejection';
|
|
47
|
+
content: string;
|
|
48
|
+
timestamp: string;
|
|
49
|
+
affectedCode: Array<{
|
|
50
|
+
id: number;
|
|
51
|
+
name: string;
|
|
52
|
+
file: string;
|
|
53
|
+
type: string;
|
|
54
|
+
}>;
|
|
55
|
+
}
|
|
56
|
+
export interface GalleryData {
|
|
57
|
+
items: GalleryItem[];
|
|
58
|
+
byType: {
|
|
59
|
+
decision: number;
|
|
60
|
+
pattern: number;
|
|
61
|
+
rejection: number;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface TimelineEntry {
|
|
65
|
+
id: number;
|
|
66
|
+
timestamp: string;
|
|
67
|
+
summary: string | null;
|
|
68
|
+
model: string | null;
|
|
69
|
+
tool: string | null;
|
|
70
|
+
touchedStructures: Array<{
|
|
71
|
+
id: number;
|
|
72
|
+
name: string;
|
|
73
|
+
file: string;
|
|
74
|
+
}>;
|
|
75
|
+
extractionCount: number;
|
|
76
|
+
}
|
|
77
|
+
export interface TimelineData {
|
|
78
|
+
entries: TimelineEntry[];
|
|
79
|
+
dateRange: {
|
|
80
|
+
start: string;
|
|
81
|
+
end: string;
|
|
82
|
+
} | null;
|
|
83
|
+
}
|
|
84
|
+
export interface TreemapNode {
|
|
85
|
+
name: string;
|
|
86
|
+
path: string;
|
|
87
|
+
type: 'directory' | 'file' | 'structure';
|
|
88
|
+
structureType?: string;
|
|
89
|
+
value: number;
|
|
90
|
+
children?: TreemapNode[];
|
|
91
|
+
}
|
|
92
|
+
export interface GraphNode {
|
|
93
|
+
data: {
|
|
94
|
+
id: string;
|
|
95
|
+
label: string;
|
|
96
|
+
type: 'function' | 'class' | 'method' | 'interface' | 'type' | 'variable' | 'module' | 'file' | 'decision' | 'pattern' | 'rejection';
|
|
97
|
+
file?: string;
|
|
98
|
+
line?: number;
|
|
99
|
+
lineEnd?: number;
|
|
100
|
+
signature?: string;
|
|
101
|
+
content?: string;
|
|
102
|
+
parent?: string;
|
|
103
|
+
weight?: number;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export interface GraphEdge {
|
|
107
|
+
data: {
|
|
108
|
+
id: string;
|
|
109
|
+
source: string;
|
|
110
|
+
target: string;
|
|
111
|
+
type: 'calls' | 'called_by' | 'references' | 'decision' | 'touched' | 'rejected' | 'contains';
|
|
112
|
+
label?: string;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export interface GraphData {
|
|
116
|
+
nodes: GraphNode[];
|
|
117
|
+
edges: GraphEdge[];
|
|
118
|
+
}
|
|
119
|
+
export interface VisualizationData {
|
|
120
|
+
project: Project;
|
|
121
|
+
graphs: {
|
|
122
|
+
overview: GraphData;
|
|
123
|
+
callGraph: GraphData;
|
|
124
|
+
dependencies: GraphData;
|
|
125
|
+
classes: GraphData;
|
|
126
|
+
decisions: GraphData;
|
|
127
|
+
};
|
|
128
|
+
smells: CodeSmellsData;
|
|
129
|
+
hotspots: HotspotsData;
|
|
130
|
+
gallery: GalleryData;
|
|
131
|
+
timeline: TimelineData;
|
|
132
|
+
treemap: TreemapNode;
|
|
133
|
+
stats: {
|
|
134
|
+
totalStructures: number;
|
|
135
|
+
totalFiles: number;
|
|
136
|
+
totalLinks: number;
|
|
137
|
+
totalDecisions: number;
|
|
138
|
+
totalConversations: number;
|
|
139
|
+
byType: Record<string, number>;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
export declare function buildVisualizationData(project: Project, structures: StructureWithFile[], files: File[], links: Link[], extractions: Extraction[], conversations?: Conversation[]): VisualizationData;
|
|
143
|
+
export declare function generateDashboard(data: VisualizationData): string;
|
|
144
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/visualize/index.ts"],"names":[],"mappings":"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"}
|