ai-mind-map 1.14.0 → 1.14.1

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/dist/index.js CHANGED
@@ -53,6 +53,7 @@ import { registerSessionTools } from './tools/session-tools.js';
53
53
  import { registerDigestTools } from './tools/digest-tools.js';
54
54
  import { registerFilesystemTools } from './tools/filesystem-tools.js';
55
55
  import { registerQualityTools } from './tools/quality-tools.js';
56
+ import { registerProjectMapTool } from './tools/project-map-tool.js';
56
57
  // Read version from package.json dynamically
57
58
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
58
59
  const pkg = JSON.parse(readFileSync(path.join(__dirname, '..', 'package.json'), 'utf-8'));
@@ -1202,6 +1203,8 @@ async function main() {
1202
1203
  log('debug', 'Registered filesystem tools (3)');
1203
1204
  registerQualityTools(server, graph, config, tokenEstimator);
1204
1205
  log('debug', 'Registered quality tools (3)');
1206
+ registerProjectMapTool(server, graph, config, tokenEstimator);
1207
+ log('debug', 'Registered project map tool (1)');
1205
1208
  // CONSOLIDATED: mindmap_sync_shared_context disabled to reduce schema payload
1206
1209
  /*
1207
1210
  server.tool(
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * AI Mind Map — Project Map Tool (MCP)
3
+ *
4
+ * THE killer tool: One call gives AI a complete mental model of any project.
5
+ * Instead of AI wasting 10-20 tool calls and thousands of tokens to understand
6
+ * a codebase, this returns a structured, token-efficient project map that covers:
7
+ *
8
+ * - What the project IS (purpose, tech stack, type)
9
+ * - HOW it's organized (modules, layers, directory structure)
10
+ * - WHAT talks to what (inter-module dependency graph)
11
+ * - WHERE the important stuff is (entry points, key abstractions)
12
+ * - WHO calls whom (top-level call flow)
13
+ * - WHAT patterns are used (design patterns, conventions)
14
+ *
15
+ * v1.14.0+
16
+ */
17
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
18
+ import type { KnowledgeGraph } from '../knowledge-graph/graph.js';
19
+ import type { MindMapConfig } from '../types.js';
20
+ import type { ITokenEstimator } from './advanced-tools.js';
21
+ export declare function registerProjectMapTool(server: McpServer, graph: KnowledgeGraph, config: MindMapConfig, estimator?: ITokenEstimator): void;
22
+ //# sourceMappingURL=project-map-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-map-tool.d.ts","sourceRoot":"","sources":["../../src/tools/project-map-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA0H3D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,aAAa,EACrB,SAAS,GAAE,eAAkC,GAC5C,IAAI,CAiIN"}
@@ -0,0 +1,877 @@
1
+ /**
2
+ * AI Mind Map — Project Map Tool (MCP)
3
+ *
4
+ * THE killer tool: One call gives AI a complete mental model of any project.
5
+ * Instead of AI wasting 10-20 tool calls and thousands of tokens to understand
6
+ * a codebase, this returns a structured, token-efficient project map that covers:
7
+ *
8
+ * - What the project IS (purpose, tech stack, type)
9
+ * - HOW it's organized (modules, layers, directory structure)
10
+ * - WHAT talks to what (inter-module dependency graph)
11
+ * - WHERE the important stuff is (entry points, key abstractions)
12
+ * - WHO calls whom (top-level call flow)
13
+ * - WHAT patterns are used (design patterns, conventions)
14
+ *
15
+ * v1.14.0+
16
+ */
17
+ import { z } from 'zod';
18
+ import { relative, basename, extname, join } from 'node:path';
19
+ import { readFileSync, readdirSync, existsSync } from 'node:fs';
20
+ // ── Helpers ─────────────────────────────────────────────────
21
+ const defaultEstimator = {
22
+ estimate: (s) => Math.ceil(s.length / 4),
23
+ };
24
+ function ok(data, estimator) {
25
+ const json = JSON.stringify(data, null, 2);
26
+ const tokens = estimator.estimate(json);
27
+ return JSON.stringify({ success: true, data, tokenCount: tokens });
28
+ }
29
+ function fail(message) {
30
+ return JSON.stringify({ success: false, error: message });
31
+ }
32
+ function mcpText(text) {
33
+ return { content: [{ type: 'text', text }] };
34
+ }
35
+ const SKIP_DIRS = new Set([
36
+ 'node_modules', '.git', '.svn', '.hg', 'dist', 'build', 'out',
37
+ '__pycache__', '.mypy_cache', '.pytest_cache', '.next', '.nuxt',
38
+ 'target', 'bin', 'obj', '.vs', '.idea', '.vscode', 'vendor',
39
+ 'coverage', '.tox', '.eggs', '.cache', '.gradle',
40
+ ]);
41
+ // ── Framework Detection ─────────────────────────────────────
42
+ const FRAMEWORK_MARKERS = [
43
+ { files: ['next.config.js', 'next.config.ts', 'next.config.mjs'], deps: ['next'], name: 'Next.js' },
44
+ { files: ['nuxt.config.ts', 'nuxt.config.js'], deps: ['nuxt'], name: 'Nuxt.js' },
45
+ { files: ['angular.json'], deps: ['@angular/core'], name: 'Angular' },
46
+ { files: ['vite.config.ts', 'vite.config.js'], deps: ['vite'], name: 'Vite' },
47
+ { files: [], deps: ['react', 'react-dom'], name: 'React' },
48
+ { files: [], deps: ['vue'], name: 'Vue.js' },
49
+ { files: [], deps: ['svelte'], name: 'Svelte' },
50
+ { files: [], deps: ['express'], name: 'Express.js' },
51
+ { files: [], deps: ['fastify'], name: 'Fastify' },
52
+ { files: [], deps: ['koa'], name: 'Koa' },
53
+ { files: [], deps: ['nestjs', '@nestjs/core'], name: 'NestJS' },
54
+ { files: [], deps: ['electron'], name: 'Electron' },
55
+ { files: [], deps: ['django'], name: 'Django' },
56
+ { files: [], deps: ['flask'], name: 'Flask' },
57
+ { files: [], deps: ['fastapi'], name: 'FastAPI' },
58
+ { files: ['Gemfile'], deps: ['rails'], name: 'Ruby on Rails' },
59
+ { files: [], deps: ['spring-boot', 'spring-core'], name: 'Spring Boot' },
60
+ { files: [], deps: ['wpf', 'WindowsBase'], name: 'WPF' },
61
+ { files: [], deps: ['Xamarin.Forms'], name: 'Xamarin' },
62
+ { files: [], deps: ['MAUI', 'Microsoft.Maui'], name: '.NET MAUI' },
63
+ ];
64
+ const BUILD_TOOL_MARKERS = [
65
+ { files: ['webpack.config.js', 'webpack.config.ts'], name: 'Webpack' },
66
+ { files: ['rollup.config.js', 'rollup.config.ts'], name: 'Rollup' },
67
+ { files: ['esbuild.config.js'], name: 'esbuild' },
68
+ { files: ['tsconfig.json'], name: 'TypeScript' },
69
+ { files: ['babel.config.js', '.babelrc'], name: 'Babel' },
70
+ { files: ['Makefile'], name: 'Make' },
71
+ { files: ['CMakeLists.txt'], name: 'CMake' },
72
+ { files: ['build.gradle', 'build.gradle.kts'], name: 'Gradle' },
73
+ { files: ['pom.xml'], name: 'Maven' },
74
+ { files: ['Cargo.toml'], name: 'Cargo' },
75
+ { files: ['go.mod'], name: 'Go Modules' },
76
+ { files: ['Dockerfile'], name: 'Docker' },
77
+ { files: ['docker-compose.yml', 'docker-compose.yaml'], name: 'Docker Compose' },
78
+ ];
79
+ // ============================================================
80
+ // Registration
81
+ // ============================================================
82
+ export function registerProjectMapTool(server, graph, config, estimator = defaultEstimator) {
83
+ server.tool('mindmap_project_map', 'Get a COMPLETE mental model of the entire project in ONE call. ' +
84
+ 'Returns the full architecture map: tech stack, modules, inter-module dependencies, ' +
85
+ 'entry points, key abstractions, data flow, conventions, and an AI-optimized quick-reference card. ' +
86
+ 'USE THIS FIRST before any other tool — it saves thousands of tokens vs reading files individually.', {
87
+ projectPath: z.string().optional().describe('Project root path (defaults to configured root)'),
88
+ detail: z.enum(['quick', 'standard', 'deep']).default('standard')
89
+ .describe('Detail level: quick (~500 tokens), standard (~2000 tokens), deep (~5000 tokens)'),
90
+ focus: z.string().optional()
91
+ .describe('Optional focus area (e.g., "api", "auth", "database") to get deeper info on a specific module'),
92
+ }, async ({ projectPath, detail, focus }) => {
93
+ try {
94
+ const rootPath = projectPath ?? config.projectRoot;
95
+ const stats = graph.getStats();
96
+ const indexedFiles = graph.getIndexedFiles();
97
+ // ── 1. Project Identity ──────────────────────────────
98
+ const projectName = detectProjectName(rootPath);
99
+ const projectType = detectProjectType(rootPath, indexedFiles);
100
+ const description = generateProjectDescription(rootPath, projectType, stats);
101
+ // ── 2. Tech Stack ────────────────────────────────────
102
+ const languages = Object.entries(stats.languageBreakdown)
103
+ .sort(([, a], [, b]) => b - a)
104
+ .map(([name, files]) => ({
105
+ name,
106
+ files,
107
+ percentage: Math.round((files / Math.max(stats.totalFiles, 1)) * 100),
108
+ }));
109
+ const frameworks = detectFrameworks(rootPath);
110
+ const buildTools = detectBuildTools(rootPath);
111
+ const runtime = detectRuntime(rootPath);
112
+ // ── 3. Module Discovery ──────────────────────────────
113
+ const modules = discoverModules(rootPath, indexedFiles, graph, config);
114
+ const relations = discoverRelations(modules, graph, config);
115
+ // ── 4. Architecture Pattern ──────────────────────────
116
+ const archPattern = detectArchPattern(modules, indexedFiles, rootPath);
117
+ const layers = detectLayers(modules, indexedFiles, rootPath);
118
+ // ── 5. Entry Points ──────────────────────────────────
119
+ const entryPoints = detectEntryPoints(indexedFiles, rootPath);
120
+ // ── 6. Key Abstractions ──────────────────────────────
121
+ const keyAbstractions = extractKeyAbstractions(graph, config, detail, focus);
122
+ // ── 7. Data Flow ─────────────────────────────────────
123
+ const dataFlow = inferDataFlow(modules, relations, entryPoints);
124
+ // ── 8. Conventions ───────────────────────────────────
125
+ const conventions = detectConventions(indexedFiles, rootPath, graph);
126
+ // ── 9. Directory Map ─────────────────────────────────
127
+ const maxDepth = detail === 'quick' ? 2 : detail === 'standard' ? 3 : 4;
128
+ const directoryMap = buildDirectoryTree(rootPath, maxDepth);
129
+ // ── 10. Quick Reference Card ─────────────────────────
130
+ const quickRef = buildQuickRef(projectName, projectType, languages, frameworks, modules, entryPoints, archPattern, stats);
131
+ // ── Build Result ─────────────────────────────────────
132
+ const result = {
133
+ projectName,
134
+ projectRoot: rootPath,
135
+ projectType,
136
+ description,
137
+ techStack: { languages, frameworks, buildTools, runtime },
138
+ architecture: { pattern: archPattern, modules, relations, layers },
139
+ entryPoints,
140
+ keyAbstractions,
141
+ dataFlow,
142
+ conventions,
143
+ directoryMap,
144
+ quickRef,
145
+ };
146
+ // If focus specified, add deep-dive on that area
147
+ if (focus) {
148
+ const focusModule = modules.find(m => m.name.toLowerCase().includes(focus.toLowerCase()) ||
149
+ m.purpose.toLowerCase().includes(focus.toLowerCase()));
150
+ if (focusModule) {
151
+ result.focusArea = buildModuleDeepDive(focusModule, graph, config);
152
+ }
153
+ }
154
+ // Trim based on detail level
155
+ if (detail === 'quick') {
156
+ return mcpText(ok({
157
+ quickRef: result.quickRef,
158
+ directoryMap: result.directoryMap,
159
+ modules: result.architecture.modules.map(m => ({
160
+ name: m.name, purpose: m.purpose, fileCount: m.fileCount,
161
+ })),
162
+ entryPoints: result.entryPoints.slice(0, 5),
163
+ tokensSaved: `~${Math.round(stats.totalNodes * 15)} tokens saved`,
164
+ }, estimator));
165
+ }
166
+ if (detail === 'standard') {
167
+ // Standard: everything except deep abstractions
168
+ const standardResult = { ...result };
169
+ standardResult.keyAbstractions = {
170
+ classes: result.keyAbstractions.classes.slice(0, 10),
171
+ interfaces: result.keyAbstractions.interfaces.slice(0, 5),
172
+ functions: result.keyAbstractions.functions.slice(0, 10),
173
+ };
174
+ standardResult.architecture.relations = result.architecture.relations.slice(0, 20);
175
+ return mcpText(ok(standardResult, estimator));
176
+ }
177
+ // Deep: everything
178
+ return mcpText(ok(result, estimator));
179
+ }
180
+ catch (err) {
181
+ return mcpText(fail(`Project map failed: ${err instanceof Error ? err.message : String(err)}`));
182
+ }
183
+ });
184
+ }
185
+ // ============================================================
186
+ // Helper Functions
187
+ // ============================================================
188
+ function detectProjectName(rootPath) {
189
+ // Try package.json first
190
+ try {
191
+ const pkg = JSON.parse(readFileSync(join(rootPath, 'package.json'), 'utf-8'));
192
+ if (pkg.name)
193
+ return pkg.name;
194
+ }
195
+ catch { /* ignore */ }
196
+ // Try .csproj
197
+ try {
198
+ const entries = readdirSync(rootPath);
199
+ const csproj = entries.find(e => e.endsWith('.csproj'));
200
+ if (csproj)
201
+ return csproj.replace('.csproj', '');
202
+ }
203
+ catch { /* ignore */ }
204
+ // Try Cargo.toml
205
+ try {
206
+ const cargo = readFileSync(join(rootPath, 'Cargo.toml'), 'utf-8');
207
+ const match = cargo.match(/name\s*=\s*"([^"]+)"/);
208
+ if (match)
209
+ return match[1];
210
+ }
211
+ catch { /* ignore */ }
212
+ // Try go.mod
213
+ try {
214
+ const gomod = readFileSync(join(rootPath, 'go.mod'), 'utf-8');
215
+ const match = gomod.match(/^module\s+(.+)$/m);
216
+ if (match)
217
+ return match[1].trim().split('/').pop();
218
+ }
219
+ catch { /* ignore */ }
220
+ return basename(rootPath);
221
+ }
222
+ function detectProjectType(rootPath, indexedFiles) {
223
+ const markers = [
224
+ [['package.json'], 'node'],
225
+ [['tsconfig.json'], 'typescript'],
226
+ [['*.csproj', '*.sln'], 'dotnet'],
227
+ [['Cargo.toml'], 'rust'],
228
+ [['go.mod'], 'go'],
229
+ [['requirements.txt', 'setup.py', 'pyproject.toml'], 'python'],
230
+ [['build.gradle', 'pom.xml'], 'java'],
231
+ [['Gemfile'], 'ruby'],
232
+ [['Package.swift'], 'swift'],
233
+ ];
234
+ const types = [];
235
+ for (const [files, type] of markers) {
236
+ for (const f of files) {
237
+ if (f.includes('*')) {
238
+ try {
239
+ const ext = f.replace('*', '');
240
+ if (readdirSync(rootPath).some(e => e.endsWith(ext)))
241
+ types.push(type);
242
+ }
243
+ catch { /* ignore */ }
244
+ }
245
+ else {
246
+ if (existsSync(join(rootPath, f)))
247
+ types.push(type);
248
+ }
249
+ }
250
+ }
251
+ // Also detect from file extensions
252
+ const extCounts = {};
253
+ for (const f of indexedFiles) {
254
+ const ext = extname(f).toLowerCase();
255
+ extCounts[ext] = (extCounts[ext] || 0) + 1;
256
+ }
257
+ if (extCounts['.xaml'] && extCounts['.cs'])
258
+ types.push('wpf');
259
+ if (extCounts['.razor'] || extCounts['.cshtml'])
260
+ types.push('asp.net');
261
+ return [...new Set(types)].join('+') || 'unknown';
262
+ }
263
+ function generateProjectDescription(rootPath, projectType, stats) {
264
+ // Try to read README or description from package.json
265
+ try {
266
+ const pkg = JSON.parse(readFileSync(join(rootPath, 'package.json'), 'utf-8'));
267
+ if (pkg.description)
268
+ return pkg.description;
269
+ }
270
+ catch { /* ignore */ }
271
+ try {
272
+ const readme = readFileSync(join(rootPath, 'README.md'), 'utf-8');
273
+ // Get first paragraph
274
+ const firstPara = readme.split('\n\n')[1]?.trim();
275
+ if (firstPara && firstPara.length < 200)
276
+ return firstPara;
277
+ }
278
+ catch { /* ignore */ }
279
+ return `${projectType} project with ${stats.totalFiles} files and ${stats.totalNodes} symbols`;
280
+ }
281
+ function detectFrameworks(rootPath) {
282
+ const found = [];
283
+ const deps = readDeps(rootPath);
284
+ for (const fw of FRAMEWORK_MARKERS) {
285
+ // Check marker files
286
+ if (fw.files.some(f => existsSync(join(rootPath, f)))) {
287
+ found.push(fw.name);
288
+ continue;
289
+ }
290
+ // Check dependencies
291
+ if (fw.deps.some(d => deps.has(d))) {
292
+ found.push(fw.name);
293
+ }
294
+ }
295
+ return found;
296
+ }
297
+ function detectBuildTools(rootPath) {
298
+ const found = [];
299
+ for (const bt of BUILD_TOOL_MARKERS) {
300
+ if (bt.files.some(f => existsSync(join(rootPath, f)))) {
301
+ found.push(bt.name);
302
+ }
303
+ }
304
+ return found;
305
+ }
306
+ function detectRuntime(rootPath) {
307
+ if (existsSync(join(rootPath, 'package.json'))) {
308
+ try {
309
+ const pkg = JSON.parse(readFileSync(join(rootPath, 'package.json'), 'utf-8'));
310
+ if (pkg.engines?.node)
311
+ return `Node.js ${pkg.engines.node}`;
312
+ }
313
+ catch { /* ignore */ }
314
+ return 'Node.js';
315
+ }
316
+ if (existsSync(join(rootPath, 'go.mod')))
317
+ return 'Go';
318
+ if (existsSync(join(rootPath, 'Cargo.toml')))
319
+ return 'Rust';
320
+ try {
321
+ if (readdirSync(rootPath).some(e => e.endsWith('.csproj') || e.endsWith('.sln')))
322
+ return '.NET';
323
+ }
324
+ catch { /* ignore */ }
325
+ if (existsSync(join(rootPath, 'requirements.txt')))
326
+ return 'Python';
327
+ return 'unknown';
328
+ }
329
+ function readDeps(rootPath) {
330
+ const deps = new Set();
331
+ try {
332
+ const pkg = JSON.parse(readFileSync(join(rootPath, 'package.json'), 'utf-8'));
333
+ for (const d of Object.keys(pkg.dependencies || {}))
334
+ deps.add(d);
335
+ for (const d of Object.keys(pkg.devDependencies || {}))
336
+ deps.add(d);
337
+ }
338
+ catch { /* ignore */ }
339
+ return deps;
340
+ }
341
+ // ── Module Discovery ────────────────────────────────────────
342
+ function discoverModules(rootPath, indexedFiles, graph, config) {
343
+ // Group files by top-level directory
344
+ const dirGroups = new Map();
345
+ for (const f of indexedFiles) {
346
+ const rel = relative(rootPath, f).replace(/\\/g, '/');
347
+ const parts = rel.split('/');
348
+ // Use top 2 levels as module boundary
349
+ const moduleDir = parts.length > 1 ? parts[0] : '.';
350
+ if (!dirGroups.has(moduleDir))
351
+ dirGroups.set(moduleDir, []);
352
+ dirGroups.get(moduleDir).push(f);
353
+ }
354
+ const modules = [];
355
+ for (const [dirName, files] of dirGroups) {
356
+ if (dirName === '.' && files.length < 3)
357
+ continue;
358
+ // Get public symbols from this module
359
+ const publicSymbols = [];
360
+ const allSymbols = new Set();
361
+ for (const f of files.slice(0, 50)) { // Cap to prevent slowness
362
+ const nodes = graph.getNodesForFile(f);
363
+ for (const n of nodes) {
364
+ allSymbols.add(n.id);
365
+ if (n.isExported || n.visibility === 'public') {
366
+ publicSymbols.push(n.qualifiedName || n.name);
367
+ }
368
+ }
369
+ }
370
+ // Find key files (entry points, index files, etc.)
371
+ const keyFiles = files
372
+ .filter(f => {
373
+ const name = basename(f).toLowerCase();
374
+ return name.startsWith('index') || name.startsWith('main') ||
375
+ name.startsWith('app') || name.startsWith('mod') ||
376
+ name === 'lib.rs' || name === 'init.py' || name === '__init__.py';
377
+ })
378
+ .map(f => relative(rootPath, f).replace(/\\/g, '/'))
379
+ .slice(0, 5);
380
+ const purpose = inferModulePurpose(dirName, files, graph);
381
+ modules.push({
382
+ name: dirName === '.' ? basename(rootPath) : dirName,
383
+ path: dirName,
384
+ purpose,
385
+ fileCount: files.length,
386
+ publicSymbols: publicSymbols.slice(0, 15),
387
+ dependencies: [], // filled in by discoverRelations
388
+ keyFiles,
389
+ });
390
+ }
391
+ // Sort by file count desc
392
+ return modules.sort((a, b) => b.fileCount - a.fileCount);
393
+ }
394
+ function inferModulePurpose(dirName, files, graph) {
395
+ const name = dirName.toLowerCase();
396
+ // Common directory name patterns
397
+ const purposes = {
398
+ 'src': 'Source code',
399
+ 'lib': 'Library/shared code',
400
+ 'api': 'API endpoints/routes',
401
+ 'routes': 'URL routing',
402
+ 'controllers': 'Request handlers (MVC controllers)',
403
+ 'models': 'Data models/entities',
404
+ 'views': 'UI views/templates',
405
+ 'components': 'UI components',
406
+ 'pages': 'Page-level components',
407
+ 'utils': 'Utility/helper functions',
408
+ 'helpers': 'Helper functions',
409
+ 'services': 'Business logic services',
410
+ 'middleware': 'Middleware/interceptors',
411
+ 'hooks': 'React/framework hooks',
412
+ 'store': 'State management',
413
+ 'stores': 'State management stores',
414
+ 'reducers': 'Redux reducers',
415
+ 'actions': 'Redux/state actions',
416
+ 'types': 'Type definitions',
417
+ 'interfaces': 'Interface definitions',
418
+ 'config': 'Configuration',
419
+ 'constants': 'Constants/enums',
420
+ 'tests': 'Test files',
421
+ 'test': 'Test files',
422
+ '__tests__': 'Test files',
423
+ 'spec': 'Test specifications',
424
+ 'styles': 'Stylesheets',
425
+ 'css': 'Stylesheets',
426
+ 'assets': 'Static assets',
427
+ 'public': 'Public static files',
428
+ 'static': 'Static files',
429
+ 'migrations': 'Database migrations',
430
+ 'schemas': 'Data schemas',
431
+ 'db': 'Database layer',
432
+ 'database': 'Database layer',
433
+ 'auth': 'Authentication/authorization',
434
+ 'security': 'Security module',
435
+ 'i18n': 'Internationalization',
436
+ 'locales': 'Localization files',
437
+ 'scripts': 'Build/utility scripts',
438
+ 'tools': 'Developer tools',
439
+ 'plugins': 'Plugin/extension system',
440
+ 'core': 'Core business logic',
441
+ 'domain': 'Domain model',
442
+ 'infra': 'Infrastructure layer',
443
+ 'infrastructure': 'Infrastructure layer',
444
+ 'common': 'Shared/common code',
445
+ 'shared': 'Shared across modules',
446
+ 'features': 'Feature modules',
447
+ 'modules': 'Application modules',
448
+ 'handlers': 'Event/request handlers',
449
+ 'workers': 'Background workers',
450
+ 'jobs': 'Background jobs',
451
+ 'queues': 'Message queues',
452
+ 'events': 'Event system',
453
+ 'commands': 'CLI commands',
454
+ 'cli': 'Command-line interface',
455
+ 'docs': 'Documentation',
456
+ 'knowledge-graph': 'Knowledge graph/data model',
457
+ 'parsers': 'Code/data parsers',
458
+ };
459
+ if (purposes[name])
460
+ return purposes[name];
461
+ // Try to infer from file contents
462
+ const exts = new Set(files.map(f => extname(f).toLowerCase()));
463
+ if (exts.has('.test.ts') || exts.has('.spec.ts') || exts.has('.test.js'))
464
+ return 'Test files';
465
+ if (exts.has('.css') || exts.has('.scss') || exts.has('.less'))
466
+ return 'Stylesheets';
467
+ if (exts.has('.html') || exts.has('.htm'))
468
+ return 'HTML templates';
469
+ // Try from symbol types
470
+ let classCount = 0, funcCount = 0, interfaceCount = 0;
471
+ for (const f of files.slice(0, 10)) {
472
+ for (const n of graph.getNodesForFile(f)) {
473
+ if (n.type === 'class')
474
+ classCount++;
475
+ if (n.type === 'function')
476
+ funcCount++;
477
+ if (n.type === 'interface')
478
+ interfaceCount++;
479
+ }
480
+ }
481
+ if (interfaceCount > classCount)
482
+ return 'Type definitions/interfaces';
483
+ if (classCount > funcCount * 2)
484
+ return 'Class-based module';
485
+ return `Module (${files.length} files)`;
486
+ }
487
+ // ── Relations ───────────────────────────────────────────────
488
+ function discoverRelations(modules, graph, config) {
489
+ const relations = [];
490
+ const moduleByFile = new Map();
491
+ // Map each file to its module
492
+ for (const mod of modules) {
493
+ const rootPath = config.projectRoot;
494
+ const indexedFiles = graph.getIndexedFiles();
495
+ for (const f of indexedFiles) {
496
+ const rel = relative(rootPath, f).replace(/\\/g, '/');
497
+ const parts = rel.split('/');
498
+ const moduleDir = parts.length > 1 ? parts[0] : '.';
499
+ const modName = moduleDir === '.' ? basename(rootPath) : moduleDir;
500
+ moduleByFile.set(f, modName);
501
+ }
502
+ }
503
+ // Count cross-module edges
504
+ const crossRefs = new Map();
505
+ const allNodes = graph.getAllNodes();
506
+ // Sample nodes (cap at 500 to prevent slowness)
507
+ const sampledNodes = allNodes.length > 500
508
+ ? allNodes.filter((_, i) => i % Math.ceil(allNodes.length / 500) === 0)
509
+ : allNodes;
510
+ for (const node of sampledNodes) {
511
+ const fromModule = moduleByFile.get(node.filePath);
512
+ if (!fromModule)
513
+ continue;
514
+ const outEdges = graph.getOutEdges(node.id);
515
+ for (const edge of outEdges) {
516
+ const targetNode = graph.getNode(edge.targetId);
517
+ if (!targetNode)
518
+ continue;
519
+ const toModule = moduleByFile.get(targetNode.filePath);
520
+ if (!toModule || toModule === fromModule)
521
+ continue;
522
+ const key = `${fromModule}->${toModule}`;
523
+ if (!crossRefs.has(key))
524
+ crossRefs.set(key, { count: 0, types: new Set() });
525
+ const ref = crossRefs.get(key);
526
+ ref.count++;
527
+ ref.types.add(edge.type);
528
+ }
529
+ }
530
+ // Convert to relations
531
+ for (const [key, ref] of crossRefs) {
532
+ const [from, to] = key.split('->');
533
+ const type = ref.types.has('calls') ? 'calls'
534
+ : ref.types.has('extends') ? 'extends'
535
+ : ref.types.has('implements') ? 'implements'
536
+ : 'imports';
537
+ relations.push({ from, to, strength: ref.count, type });
538
+ }
539
+ // Update module dependencies
540
+ for (const rel of relations) {
541
+ const mod = modules.find(m => m.name === rel.from);
542
+ if (mod && !mod.dependencies.includes(rel.to)) {
543
+ mod.dependencies.push(rel.to);
544
+ }
545
+ }
546
+ return relations.sort((a, b) => b.strength - a.strength);
547
+ }
548
+ // ── Architecture Detection ──────────────────────────────────
549
+ function detectArchPattern(modules, indexedFiles, rootPath) {
550
+ const moduleNames = new Set(modules.map(m => m.name.toLowerCase()));
551
+ // MVC
552
+ if (moduleNames.has('models') && moduleNames.has('views') && moduleNames.has('controllers'))
553
+ return 'MVC (Model-View-Controller)';
554
+ // MVVM
555
+ if (moduleNames.has('models') && moduleNames.has('views') && moduleNames.has('viewmodels'))
556
+ return 'MVVM (Model-View-ViewModel)';
557
+ // Clean Architecture
558
+ if (moduleNames.has('domain') && moduleNames.has('infrastructure') && moduleNames.has('application'))
559
+ return 'Clean Architecture';
560
+ // Layered
561
+ if (moduleNames.has('api') && moduleNames.has('services') && moduleNames.has('data'))
562
+ return 'Layered Architecture';
563
+ // Feature-based
564
+ if (moduleNames.has('features') || moduleNames.has('modules'))
565
+ return 'Feature-based Architecture';
566
+ // Component-based (frontend)
567
+ if (moduleNames.has('components') && (moduleNames.has('pages') || moduleNames.has('views')))
568
+ return 'Component-based Architecture';
569
+ // Simple (flat)
570
+ if (modules.length <= 2)
571
+ return 'Simple/Flat Architecture';
572
+ // Library
573
+ if (moduleNames.has('lib') && modules.length <= 4)
574
+ return 'Library Architecture';
575
+ return 'Modular Architecture';
576
+ }
577
+ function detectLayers(modules, indexedFiles, rootPath) {
578
+ const layers = [];
579
+ const moduleNames = modules.map(m => m.name.toLowerCase());
580
+ // Presentation layer
581
+ const presentationModules = modules.filter(m => {
582
+ const n = m.name.toLowerCase();
583
+ return ['views', 'components', 'pages', 'ui', 'templates', 'layouts', 'screens'].includes(n);
584
+ });
585
+ if (presentationModules.length > 0) {
586
+ layers.push({
587
+ name: 'Presentation',
588
+ modules: presentationModules.map(m => m.name),
589
+ description: 'UI components, pages, and templates',
590
+ });
591
+ }
592
+ // Application/Business layer
593
+ const businessModules = modules.filter(m => {
594
+ const n = m.name.toLowerCase();
595
+ return ['services', 'controllers', 'handlers', 'core', 'domain', 'application', 'features'].includes(n);
596
+ });
597
+ if (businessModules.length > 0) {
598
+ layers.push({
599
+ name: 'Business Logic',
600
+ modules: businessModules.map(m => m.name),
601
+ description: 'Core business rules, services, and controllers',
602
+ });
603
+ }
604
+ // Data/Infrastructure layer
605
+ const dataModules = modules.filter(m => {
606
+ const n = m.name.toLowerCase();
607
+ return ['models', 'data', 'db', 'database', 'repositories', 'infra', 'infrastructure', 'migrations'].includes(n);
608
+ });
609
+ if (dataModules.length > 0) {
610
+ layers.push({
611
+ name: 'Data/Infrastructure',
612
+ modules: dataModules.map(m => m.name),
613
+ description: 'Data models, database, and external integrations',
614
+ });
615
+ }
616
+ // Shared/Utils layer
617
+ const sharedModules = modules.filter(m => {
618
+ const n = m.name.toLowerCase();
619
+ return ['utils', 'helpers', 'common', 'shared', 'lib', 'types', 'config', 'constants'].includes(n);
620
+ });
621
+ if (sharedModules.length > 0) {
622
+ layers.push({
623
+ name: 'Shared/Utilities',
624
+ modules: sharedModules.map(m => m.name),
625
+ description: 'Shared utilities, type definitions, and configuration',
626
+ });
627
+ }
628
+ return layers;
629
+ }
630
+ // ── Entry Points ────────────────────────────────────────────
631
+ function detectEntryPoints(indexedFiles, rootPath) {
632
+ const entryPoints = [];
633
+ const seen = new Set();
634
+ const patterns = [
635
+ [/[/\\]index\.(ts|js|tsx|jsx|mjs)$/, 'main', 'Application entry point'],
636
+ [/[/\\]main\.(ts|js|py|go|rs|java)$/, 'main', 'Application main file'],
637
+ [/[/\\]app\.(ts|js|tsx|jsx|py)$/, 'app', 'Application bootstrap'],
638
+ [/[/\\]App\.(tsx|jsx|vue|svelte)$/, 'app', 'Root application component'],
639
+ [/[/\\]server\.(ts|js|py)$/, 'server', 'Server entry point'],
640
+ [/[/\\]Program\.cs$/, 'main', '.NET program entry point'],
641
+ [/[/\\]Startup\.cs$/, 'startup', '.NET startup configuration'],
642
+ [/[/\\]App\.xaml\.cs$/, 'app', 'WPF application entry point'],
643
+ [/[/\\]MainWindow\.xaml\.cs$/, 'ui', 'Main window (WPF)'],
644
+ [/[/\\]manage\.py$/, 'cli', 'Django management script'],
645
+ [/[/\\]wsgi\.py$/, 'server', 'WSGI server entry'],
646
+ [/[/\\]asgi\.py$/, 'server', 'ASGI server entry'],
647
+ [/[/\\]lib\.rs$/, 'lib', 'Rust library crate root'],
648
+ [/[/\\]mod\.rs$/, 'module', 'Rust module root'],
649
+ [/[/\\]cmd[/\\].*\.go$/, 'cli', 'Go CLI command'],
650
+ [/[/\\]routes?\.(ts|js|py)$/i, 'routing', 'Route definitions'],
651
+ [/[/\\]api[/\\].*\.(ts|js|py)$/, 'api', 'API endpoint'],
652
+ ];
653
+ for (const f of indexedFiles) {
654
+ for (const [pattern, type, desc] of patterns) {
655
+ if (pattern.test(f) && !seen.has(f)) {
656
+ seen.add(f);
657
+ entryPoints.push({
658
+ file: relative(rootPath, f).replace(/\\/g, '/'),
659
+ type,
660
+ description: desc,
661
+ });
662
+ break;
663
+ }
664
+ }
665
+ }
666
+ return entryPoints.slice(0, 15);
667
+ }
668
+ // ── Key Abstractions ────────────────────────────────────────
669
+ function extractKeyAbstractions(graph, config, detail, focus) {
670
+ const allNodes = graph.getAllNodes();
671
+ const limit = detail === 'deep' ? 20 : detail === 'standard' ? 10 : 5;
672
+ // Classes: sorted by edge count (most connected = most important)
673
+ const classes = allNodes
674
+ .filter(n => n.type === 'class' && (n.isExported || n.visibility === 'public'))
675
+ .map(n => {
676
+ const methods = allNodes.filter(m => m.type === 'method' && m.filePath === n.filePath &&
677
+ m.startLine >= n.startLine && m.endLine <= n.endLine).length;
678
+ return {
679
+ name: n.qualifiedName || n.name,
680
+ file: relative(config.projectRoot, n.filePath).replace(/\\/g, '/'),
681
+ methods,
682
+ description: n.docComment?.substring(0, 80) || `${n.name} class (${methods} methods)`,
683
+ };
684
+ })
685
+ .sort((a, b) => b.methods - a.methods)
686
+ .slice(0, limit);
687
+ // Interfaces
688
+ const interfaces = allNodes
689
+ .filter(n => n.type === 'interface' && (n.isExported || n.visibility === 'public'))
690
+ .map(n => ({
691
+ name: n.qualifiedName || n.name,
692
+ file: relative(config.projectRoot, n.filePath).replace(/\\/g, '/'),
693
+ description: n.docComment?.substring(0, 80) || `${n.name} interface`,
694
+ }))
695
+ .slice(0, limit);
696
+ // Top functions (exported, not methods)
697
+ const functions = allNodes
698
+ .filter(n => n.type === 'function' && (n.isExported || n.visibility === 'public'))
699
+ .map(n => ({
700
+ name: n.qualifiedName || n.name,
701
+ file: relative(config.projectRoot, n.filePath).replace(/\\/g, '/'),
702
+ signature: n.signature?.substring(0, 120) || n.name,
703
+ }))
704
+ .slice(0, limit);
705
+ return { classes, interfaces, functions };
706
+ }
707
+ // ── Data Flow ───────────────────────────────────────────────
708
+ function inferDataFlow(modules, relations, entryPoints) {
709
+ const flows = [];
710
+ // Find entry -> service -> data flows
711
+ const entryModules = new Set(entryPoints.map(e => {
712
+ const parts = e.file.split('/');
713
+ return parts.length > 1 ? parts[0] : '.';
714
+ }));
715
+ for (const rel of relations.slice(0, 10)) {
716
+ if (entryModules.has(rel.from)) {
717
+ flows.push(`${rel.from} → ${rel.to} (${rel.type}, ${rel.strength} refs)`);
718
+ }
719
+ }
720
+ // Build chain: entry -> business -> data
721
+ if (flows.length === 0 && relations.length > 0) {
722
+ for (const rel of relations.slice(0, 5)) {
723
+ flows.push(`${rel.from} → ${rel.to} (${rel.type})`);
724
+ }
725
+ }
726
+ if (flows.length === 0) {
727
+ flows.push('(Run mindmap_reindex first for data flow analysis)');
728
+ }
729
+ return flows;
730
+ }
731
+ // ── Conventions ─────────────────────────────────────────────
732
+ function detectConventions(indexedFiles, rootPath, graph) {
733
+ const conventions = [];
734
+ // File naming convention
735
+ const names = indexedFiles.map(f => basename(f));
736
+ const camelCase = names.filter(n => /^[a-z][a-zA-Z]+\.\w+$/.test(n)).length;
737
+ const kebabCase = names.filter(n => /^[a-z]+-[a-z][\w-]*\.\w+$/.test(n)).length;
738
+ const pascalCase = names.filter(n => /^[A-Z][a-zA-Z]+\.\w+$/.test(n)).length;
739
+ const snakeCase = names.filter(n => /^[a-z]+_[a-z][\w_]*\.\w+$/.test(n)).length;
740
+ const max = Math.max(camelCase, kebabCase, pascalCase, snakeCase);
741
+ if (max > names.length * 0.3) {
742
+ if (camelCase === max)
743
+ conventions.push('File naming: camelCase');
744
+ if (kebabCase === max)
745
+ conventions.push('File naming: kebab-case');
746
+ if (pascalCase === max)
747
+ conventions.push('File naming: PascalCase');
748
+ if (snakeCase === max)
749
+ conventions.push('File naming: snake_case');
750
+ }
751
+ // Module style
752
+ if (existsSync(join(rootPath, 'tsconfig.json')))
753
+ conventions.push('TypeScript strict mode');
754
+ if (existsSync(join(rootPath, '.eslintrc.js')) || existsSync(join(rootPath, '.eslintrc.json')) || existsSync(join(rootPath, 'eslint.config.js')))
755
+ conventions.push('ESLint enforced');
756
+ if (existsSync(join(rootPath, '.prettierrc')) || existsSync(join(rootPath, '.prettierrc.json')))
757
+ conventions.push('Prettier formatting');
758
+ if (existsSync(join(rootPath, '.editorconfig')))
759
+ conventions.push('EditorConfig standards');
760
+ // Check for test patterns
761
+ const testFiles = indexedFiles.filter(f => f.includes('.test.') || f.includes('.spec.') || f.includes('__test'));
762
+ if (testFiles.length > 0) {
763
+ const ratio = Math.round((testFiles.length / indexedFiles.length) * 100);
764
+ conventions.push(`Test coverage: ${testFiles.length} test files (${ratio}%)`);
765
+ }
766
+ // Export style
767
+ const nodes = graph.getAllNodes();
768
+ const exportedCount = nodes.filter(n => n.isExported).length;
769
+ if (exportedCount > 0) {
770
+ const exportRatio = Math.round((exportedCount / nodes.length) * 100);
771
+ conventions.push(`Export ratio: ${exportRatio}% of symbols are exported`);
772
+ }
773
+ return conventions;
774
+ }
775
+ // ── Directory Tree ──────────────────────────────────────────
776
+ function buildDirectoryTree(rootPath, maxDepth) {
777
+ const lines = [];
778
+ const rootName = basename(rootPath);
779
+ lines.push(`${rootName}/`);
780
+ buildTreeRecursive(rootPath, '', maxDepth, 0, lines);
781
+ return lines.join('\n');
782
+ }
783
+ function buildTreeRecursive(dir, prefix, maxDepth, depth, lines) {
784
+ if (depth >= maxDepth)
785
+ return;
786
+ let entries;
787
+ try {
788
+ entries = readdirSync(dir, { withFileTypes: true })
789
+ .filter(e => !e.name.startsWith('.') && !SKIP_DIRS.has(e.name))
790
+ .map(e => ({ name: e.name, isDir: e.isDirectory() }))
791
+ .sort((a, b) => {
792
+ if (a.isDir !== b.isDir)
793
+ return a.isDir ? -1 : 1;
794
+ return a.name.localeCompare(b.name);
795
+ });
796
+ }
797
+ catch {
798
+ return;
799
+ }
800
+ // Cap entries to prevent huge trees
801
+ const maxEntries = depth === 0 ? 30 : 15;
802
+ const shown = entries.slice(0, maxEntries);
803
+ const hidden = entries.length - shown.length;
804
+ for (let i = 0; i < shown.length; i++) {
805
+ const entry = shown[i];
806
+ const isLast = i === shown.length - 1 && hidden === 0;
807
+ const connector = isLast ? '└── ' : '├── ';
808
+ const nextPrefix = isLast ? ' ' : '│ ';
809
+ if (entry.isDir) {
810
+ // Count files in this dir
811
+ let fileCount = 0;
812
+ try {
813
+ fileCount = readdirSync(join(dir, entry.name)).filter(e => !e.startsWith('.')).length;
814
+ }
815
+ catch { /* ignore */ }
816
+ lines.push(`${prefix}${connector}${entry.name}/ (${fileCount})`);
817
+ buildTreeRecursive(join(dir, entry.name), prefix + nextPrefix, maxDepth, depth + 1, lines);
818
+ }
819
+ else {
820
+ lines.push(`${prefix}${connector}${entry.name}`);
821
+ }
822
+ }
823
+ if (hidden > 0) {
824
+ lines.push(`${prefix}└── ... +${hidden} more`);
825
+ }
826
+ }
827
+ // ── Quick Reference Card ────────────────────────────────────
828
+ function buildQuickRef(name, type, languages, frameworks, modules, entryPoints, archPattern, stats) {
829
+ const lines = [];
830
+ lines.push(`═══ ${name} ═══`);
831
+ lines.push(`Type: ${type} | Architecture: ${archPattern}`);
832
+ lines.push(`Stack: ${languages.map(l => `${l.name}(${l.percentage}%)`).join(', ')}`);
833
+ if (frameworks.length > 0)
834
+ lines.push(`Frameworks: ${frameworks.join(', ')}`);
835
+ lines.push(`Size: ${stats.totalFiles} files, ${stats.totalNodes} symbols, ${stats.totalEdges} relationships`);
836
+ lines.push('');
837
+ lines.push('Modules:');
838
+ for (const m of modules.slice(0, 10)) {
839
+ const deps = m.dependencies.length > 0 ? ` → ${m.dependencies.slice(0, 3).join(', ')}` : '';
840
+ lines.push(` ${m.name}/ (${m.fileCount} files) — ${m.purpose}${deps}`);
841
+ }
842
+ lines.push('');
843
+ if (entryPoints.length > 0) {
844
+ lines.push('Entry Points:');
845
+ for (const ep of entryPoints.slice(0, 5)) {
846
+ lines.push(` ${ep.file} (${ep.type})`);
847
+ }
848
+ }
849
+ return lines.join('\n');
850
+ }
851
+ // ── Module Deep Dive ────────────────────────────────────────
852
+ function buildModuleDeepDive(mod, graph, config) {
853
+ const indexedFiles = graph.getIndexedFiles();
854
+ const moduleFiles = indexedFiles.filter(f => {
855
+ const rel = relative(config.projectRoot, f).replace(/\\/g, '/');
856
+ return rel.startsWith(mod.path + '/') || (mod.path === '.' && !rel.includes('/'));
857
+ });
858
+ const allSymbols = [];
859
+ for (const f of moduleFiles.slice(0, 30)) {
860
+ for (const n of graph.getNodesForFile(f)) {
861
+ allSymbols.push({
862
+ name: n.qualifiedName || n.name,
863
+ type: n.type,
864
+ file: relative(config.projectRoot, n.filePath).replace(/\\/g, '/'),
865
+ exported: n.isExported || n.visibility === 'public',
866
+ });
867
+ }
868
+ }
869
+ return {
870
+ module: mod.name,
871
+ files: moduleFiles.map(f => relative(config.projectRoot, f).replace(/\\/g, '/')),
872
+ symbols: allSymbols,
873
+ exportedSymbols: allSymbols.filter(s => s.exported),
874
+ internalSymbols: allSymbols.filter(s => !s.exported).length,
875
+ };
876
+ }
877
+ //# sourceMappingURL=project-map-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-map-tool.js","sourceRoot":"","sources":["../../src/tools/project-map-tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-mind-map",
3
- "version": "1.14.0",
3
+ "version": "1.14.1",
4
4
  "description": "AI Mind Map — MCP server that reduces AI coding agent token usage by 80-99% through persistent codebase memory, knowledge graphs, and intelligent context management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",