@stackguide/mcp-server 3.3.0 → 3.8.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.
Files changed (133) hide show
  1. package/README.md +259 -10
  2. package/dist/config/persistence.d.ts +16 -0
  3. package/dist/config/persistence.d.ts.map +1 -1
  4. package/dist/config/persistence.js +53 -0
  5. package/dist/config/persistence.js.map +1 -1
  6. package/dist/handlers/config.d.ts +1 -8
  7. package/dist/handlers/config.d.ts.map +1 -1
  8. package/dist/handlers/config.js +7 -1
  9. package/dist/handlers/config.js.map +1 -1
  10. package/dist/handlers/context.d.ts +1 -5
  11. package/dist/handlers/context.d.ts.map +1 -1
  12. package/dist/handlers/context.js +7 -1
  13. package/dist/handlers/context.js.map +1 -1
  14. package/dist/handlers/cursor.d.ts +1 -7
  15. package/dist/handlers/cursor.d.ts.map +1 -1
  16. package/dist/handlers/cursor.js +7 -1
  17. package/dist/handlers/cursor.js.map +1 -1
  18. package/dist/handlers/custom-rule.d.ts +1 -11
  19. package/dist/handlers/custom-rule.d.ts.map +1 -1
  20. package/dist/handlers/custom-rule.js +7 -1
  21. package/dist/handlers/custom-rule.js.map +1 -1
  22. package/dist/handlers/docs.d.ts +1 -8
  23. package/dist/handlers/docs.d.ts.map +1 -1
  24. package/dist/handlers/docs.js +7 -1
  25. package/dist/handlers/docs.js.map +1 -1
  26. package/dist/handlers/generate.d.ts +1 -13
  27. package/dist/handlers/generate.d.ts.map +1 -1
  28. package/dist/handlers/generate.js +6 -3
  29. package/dist/handlers/generate.js.map +1 -1
  30. package/dist/handlers/health.d.ts +1 -8
  31. package/dist/handlers/health.d.ts.map +1 -1
  32. package/dist/handlers/health.js +11 -3
  33. package/dist/handlers/health.js.map +1 -1
  34. package/dist/handlers/help.d.ts +1 -5
  35. package/dist/handlers/help.d.ts.map +1 -1
  36. package/dist/handlers/help.js +7 -1
  37. package/dist/handlers/help.js.map +1 -1
  38. package/dist/handlers/knowledge.d.ts +1 -8
  39. package/dist/handlers/knowledge.d.ts.map +1 -1
  40. package/dist/handlers/knowledge.js +7 -1
  41. package/dist/handlers/knowledge.js.map +1 -1
  42. package/dist/handlers/prompts.d.ts +31 -0
  43. package/dist/handlers/prompts.d.ts.map +1 -0
  44. package/dist/handlers/prompts.js +225 -0
  45. package/dist/handlers/prompts.js.map +1 -0
  46. package/dist/handlers/resources.d.ts +27 -0
  47. package/dist/handlers/resources.d.ts.map +1 -0
  48. package/dist/handlers/resources.js +210 -0
  49. package/dist/handlers/resources.js.map +1 -0
  50. package/dist/handlers/review.d.ts.map +1 -1
  51. package/dist/handlers/review.js +18 -1
  52. package/dist/handlers/review.js.map +1 -1
  53. package/dist/handlers/rules.d.ts +1 -9
  54. package/dist/handlers/rules.d.ts.map +1 -1
  55. package/dist/handlers/rules.js +7 -1
  56. package/dist/handlers/rules.js.map +1 -1
  57. package/dist/index.d.ts +4 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +29 -419
  60. package/dist/index.js.map +1 -1
  61. package/dist/router/index.d.ts +69 -0
  62. package/dist/router/index.d.ts.map +1 -0
  63. package/dist/router/index.js +151 -0
  64. package/dist/router/index.js.map +1 -0
  65. package/dist/services/ast/analyzer.d.ts +55 -0
  66. package/dist/services/ast/analyzer.d.ts.map +1 -0
  67. package/dist/services/ast/analyzer.js +268 -0
  68. package/dist/services/ast/analyzer.js.map +1 -0
  69. package/dist/services/ast/index.d.ts +10 -0
  70. package/dist/services/ast/index.d.ts.map +1 -0
  71. package/dist/services/ast/index.js +12 -0
  72. package/dist/services/ast/index.js.map +1 -0
  73. package/dist/services/ast/rules.d.ts +13 -0
  74. package/dist/services/ast/rules.d.ts.map +1 -0
  75. package/dist/services/ast/rules.js +358 -0
  76. package/dist/services/ast/rules.js.map +1 -0
  77. package/dist/services/ast/treeSitterParser.d.ts +54 -0
  78. package/dist/services/ast/treeSitterParser.d.ts.map +1 -0
  79. package/dist/services/ast/treeSitterParser.js +394 -0
  80. package/dist/services/ast/treeSitterParser.js.map +1 -0
  81. package/dist/services/ast/types.d.ts +167 -0
  82. package/dist/services/ast/types.d.ts.map +1 -0
  83. package/dist/services/ast/types.js +35 -0
  84. package/dist/services/ast/types.js.map +1 -0
  85. package/dist/services/codeAnalyzer.d.ts.map +1 -1
  86. package/dist/services/codeAnalyzer.js +43 -3
  87. package/dist/services/codeAnalyzer.js.map +1 -1
  88. package/dist/services/httpClient.d.ts +45 -0
  89. package/dist/services/httpClient.d.ts.map +1 -0
  90. package/dist/services/httpClient.js +309 -0
  91. package/dist/services/httpClient.js.map +1 -0
  92. package/dist/services/intelligence/projectFs.d.ts +11 -0
  93. package/dist/services/intelligence/projectFs.d.ts.map +1 -0
  94. package/dist/services/intelligence/projectFs.js +30 -0
  95. package/dist/services/intelligence/projectFs.js.map +1 -0
  96. package/dist/services/projectFs.d.ts +85 -0
  97. package/dist/services/projectFs.d.ts.map +1 -0
  98. package/dist/services/projectFs.js +287 -0
  99. package/dist/services/projectFs.js.map +1 -0
  100. package/dist/services/rulesEngine.d.ts +255 -0
  101. package/dist/services/rulesEngine.d.ts.map +1 -0
  102. package/dist/services/rulesEngine.js +483 -0
  103. package/dist/services/rulesEngine.js.map +1 -0
  104. package/dist/services/webDocumentation.d.ts +9 -0
  105. package/dist/services/webDocumentation.d.ts.map +1 -1
  106. package/dist/services/webDocumentation.js +144 -1
  107. package/dist/services/webDocumentation.js.map +1 -1
  108. package/dist/storage/index.d.ts +7 -0
  109. package/dist/storage/index.d.ts.map +1 -0
  110. package/dist/storage/index.js +7 -0
  111. package/dist/storage/index.js.map +1 -0
  112. package/dist/storage/sqlite.d.ts +92 -0
  113. package/dist/storage/sqlite.d.ts.map +1 -0
  114. package/dist/storage/sqlite.js +471 -0
  115. package/dist/storage/sqlite.js.map +1 -0
  116. package/dist/storage/types.d.ts +147 -0
  117. package/dist/storage/types.d.ts.map +1 -0
  118. package/dist/storage/types.js +13 -0
  119. package/dist/storage/types.js.map +1 -0
  120. package/dist/utils/logger.d.ts +11 -2
  121. package/dist/utils/logger.d.ts.map +1 -1
  122. package/dist/utils/logger.js +30 -2
  123. package/dist/utils/logger.js.map +1 -1
  124. package/dist/utils/validation.d.ts +1 -1
  125. package/dist/validation/index.d.ts +8 -0
  126. package/dist/validation/index.d.ts.map +1 -0
  127. package/dist/validation/index.js +19 -0
  128. package/dist/validation/index.js.map +1 -0
  129. package/dist/validation/schemas.d.ts +341 -0
  130. package/dist/validation/schemas.d.ts.map +1 -0
  131. package/dist/validation/schemas.js +244 -0
  132. package/dist/validation/schemas.js.map +1 -0
  133. package/package.json +9 -2
@@ -0,0 +1,394 @@
1
+ /**
2
+ * Tree-Sitter Core Parser
3
+ * Multi-language AST parsing using tree-sitter
4
+ * @version 3.5.0
5
+ */
6
+ import Parser from 'tree-sitter';
7
+ import { logger } from '../../utils/logger.js';
8
+ // ============================================================================
9
+ // Language Grammars
10
+ // ============================================================================
11
+ // Lazy-loaded language grammars
12
+ let grammars = null;
13
+ async function loadGrammars() {
14
+ if (grammars)
15
+ return grammars;
16
+ grammars = new Map();
17
+ try {
18
+ // TypeScript/JavaScript
19
+ const tsLang = await import('tree-sitter-typescript');
20
+ grammars.set('typescript', {
21
+ language: 'typescript',
22
+ extensions: ['.ts', '.mts', '.cts'],
23
+ parser: tsLang.default.typescript
24
+ });
25
+ grammars.set('tsx', {
26
+ language: 'tsx',
27
+ extensions: ['.tsx'],
28
+ parser: tsLang.default.tsx
29
+ });
30
+ // JavaScript uses TypeScript parser in JS mode
31
+ grammars.set('javascript', {
32
+ language: 'javascript',
33
+ extensions: ['.js', '.mjs', '.cjs', '.jsx'],
34
+ parser: tsLang.default.typescript // TS parser handles JS
35
+ });
36
+ logger.debug('Loaded TypeScript/JavaScript grammar');
37
+ }
38
+ catch (e) {
39
+ logger.warn('Failed to load TypeScript grammar', { error: String(e) });
40
+ }
41
+ try {
42
+ const pyLang = await import('tree-sitter-python');
43
+ grammars.set('python', {
44
+ language: 'python',
45
+ extensions: ['.py', '.pyi', '.pyw'],
46
+ parser: pyLang.default
47
+ });
48
+ logger.debug('Loaded Python grammar');
49
+ }
50
+ catch (e) {
51
+ logger.warn('Failed to load Python grammar', { error: String(e) });
52
+ }
53
+ try {
54
+ const goLang = await import('tree-sitter-go');
55
+ grammars.set('go', {
56
+ language: 'go',
57
+ extensions: ['.go'],
58
+ parser: goLang.default
59
+ });
60
+ logger.debug('Loaded Go grammar');
61
+ }
62
+ catch (e) {
63
+ logger.warn('Failed to load Go grammar', { error: String(e) });
64
+ }
65
+ try {
66
+ const rustLang = await import('tree-sitter-rust');
67
+ grammars.set('rust', {
68
+ language: 'rust',
69
+ extensions: ['.rs'],
70
+ parser: rustLang.default
71
+ });
72
+ logger.debug('Loaded Rust grammar');
73
+ }
74
+ catch (e) {
75
+ logger.warn('Failed to load Rust grammar', { error: String(e) });
76
+ }
77
+ logger.info(`Loaded ${grammars.size} tree-sitter grammars`);
78
+ return grammars;
79
+ }
80
+ // ============================================================================
81
+ // Parser Instance Pool
82
+ // ============================================================================
83
+ const parserPool = new Map();
84
+ async function getParser(language) {
85
+ if (parserPool.has(language)) {
86
+ return parserPool.get(language);
87
+ }
88
+ const grammars = await loadGrammars();
89
+ const grammar = grammars.get(language);
90
+ if (!grammar) {
91
+ logger.warn(`No grammar available for language: ${language}`);
92
+ return null;
93
+ }
94
+ const parser = new Parser();
95
+ parser.setLanguage(grammar.parser);
96
+ parserPool.set(language, parser);
97
+ return parser;
98
+ }
99
+ // ============================================================================
100
+ // Core Parsing Functions
101
+ // ============================================================================
102
+ /**
103
+ * Detect language from file extension
104
+ */
105
+ export function detectLanguage(filePath) {
106
+ const ext = filePath.substring(filePath.lastIndexOf('.'));
107
+ const extensionMap = {
108
+ '.ts': 'typescript',
109
+ '.mts': 'typescript',
110
+ '.cts': 'typescript',
111
+ '.tsx': 'tsx',
112
+ '.js': 'javascript',
113
+ '.mjs': 'javascript',
114
+ '.cjs': 'javascript',
115
+ '.jsx': 'javascript',
116
+ '.py': 'python',
117
+ '.pyi': 'python',
118
+ '.pyw': 'python',
119
+ '.go': 'go',
120
+ '.rs': 'rust'
121
+ };
122
+ return extensionMap[ext] || null;
123
+ }
124
+ /**
125
+ * Parse source code into AST using tree-sitter
126
+ */
127
+ export async function parseCode(code, filePath, language) {
128
+ const startTime = Date.now();
129
+ const lang = language || detectLanguage(filePath);
130
+ if (!lang) {
131
+ logger.debug(`Unsupported file type for AST parsing: ${filePath}`);
132
+ return null;
133
+ }
134
+ const parser = await getParser(lang);
135
+ if (!parser) {
136
+ return null;
137
+ }
138
+ try {
139
+ const tree = parser.parse(code);
140
+ const errors = [];
141
+ // Collect syntax errors
142
+ collectErrors(tree.rootNode, errors);
143
+ const result = {
144
+ language: lang,
145
+ filePath,
146
+ rootNode: convertNode(tree.rootNode),
147
+ parseTime: Date.now() - startTime,
148
+ errors
149
+ };
150
+ logger.debug(`Parsed ${filePath} in ${result.parseTime}ms`, {
151
+ language: lang,
152
+ errors: errors.length
153
+ });
154
+ return result;
155
+ }
156
+ catch (error) {
157
+ logger.error(`Failed to parse ${filePath}`, { error: String(error) });
158
+ return null;
159
+ }
160
+ }
161
+ /**
162
+ * Convert tree-sitter node to our AST node type
163
+ */
164
+ function convertNode(node) {
165
+ return {
166
+ type: node.type,
167
+ text: node.text,
168
+ startPosition: { row: node.startPosition.row, column: node.startPosition.column },
169
+ endPosition: { row: node.endPosition.row, column: node.endPosition.column },
170
+ children: node.children.map(convertNode),
171
+ namedChildren: node.namedChildren.map(convertNode),
172
+ childCount: node.childCount,
173
+ namedChildCount: node.namedChildCount,
174
+ isNamed: node.isNamed
175
+ };
176
+ }
177
+ /**
178
+ * Collect syntax errors from AST
179
+ */
180
+ function collectErrors(node, errors) {
181
+ if (node.type === 'ERROR' || node.isMissing) {
182
+ errors.push({
183
+ message: node.isMissing
184
+ ? `Missing ${node.type}`
185
+ : `Syntax error: unexpected ${node.text.substring(0, 20)}`,
186
+ line: node.startPosition.row + 1,
187
+ column: node.startPosition.column + 1,
188
+ type: 'syntax'
189
+ });
190
+ }
191
+ for (const child of node.children) {
192
+ collectErrors(child, errors);
193
+ }
194
+ }
195
+ // ============================================================================
196
+ // AST Query Functions
197
+ // ============================================================================
198
+ /**
199
+ * Query AST using tree-sitter query syntax
200
+ */
201
+ export async function queryAST(ast, queryPattern) {
202
+ const parser = await getParser(ast.language);
203
+ if (!parser)
204
+ return [];
205
+ try {
206
+ const language = parser.getLanguage();
207
+ const query = new Parser.Query(language, queryPattern);
208
+ // Re-parse to get actual tree-sitter nodes for query
209
+ const tree = parser.parse(ast.rootNode.text);
210
+ const matches = query.matches(tree.rootNode);
211
+ return matches.map(match => {
212
+ const captures = new Map();
213
+ for (const capture of match.captures) {
214
+ const name = capture.name;
215
+ if (!captures.has(name)) {
216
+ captures.set(name, []);
217
+ }
218
+ captures.get(name).push(convertNode(capture.node));
219
+ }
220
+ return { captures };
221
+ });
222
+ }
223
+ catch (error) {
224
+ logger.warn('AST query failed', { pattern: queryPattern, error: String(error) });
225
+ return [];
226
+ }
227
+ }
228
+ // ============================================================================
229
+ // AST Traversal
230
+ // ============================================================================
231
+ /**
232
+ * Walk the AST and call visitor functions
233
+ */
234
+ export function walkAST(node, visitor, parent) {
235
+ // Call enter, if it returns false, skip children
236
+ if (visitor.enter) {
237
+ const result = visitor.enter(node, parent);
238
+ if (result === false) {
239
+ if (visitor.leave)
240
+ visitor.leave(node, parent);
241
+ return;
242
+ }
243
+ }
244
+ // Visit children
245
+ for (const child of node.namedChildren) {
246
+ walkAST(child, visitor, node);
247
+ }
248
+ // Call leave
249
+ if (visitor.leave) {
250
+ visitor.leave(node, parent);
251
+ }
252
+ }
253
+ /**
254
+ * Find all nodes matching a predicate
255
+ */
256
+ export function findNodes(ast, predicate) {
257
+ const results = [];
258
+ walkAST(ast.rootNode, {
259
+ enter: (node) => {
260
+ if (predicate(node)) {
261
+ results.push(node);
262
+ }
263
+ }
264
+ });
265
+ return results;
266
+ }
267
+ /**
268
+ * Find nodes by type
269
+ */
270
+ export function findNodesByType(ast, ...types) {
271
+ const typeSet = new Set(types);
272
+ return findNodes(ast, node => typeSet.has(node.type));
273
+ }
274
+ // ============================================================================
275
+ // Metrics Extraction
276
+ // ============================================================================
277
+ /**
278
+ * Extract code metrics from AST
279
+ */
280
+ export function extractMetrics(ast) {
281
+ let functions = 0;
282
+ let classes = 0;
283
+ let imports = 0;
284
+ let maxNestingDepth = 0;
285
+ let complexity = 1; // Base complexity
286
+ const functionTypes = new Set([
287
+ 'function_declaration', 'function_definition', 'method_declaration',
288
+ 'method_definition', 'arrow_function', 'function_expression',
289
+ 'func_literal', 'function_item' // Go, Rust
290
+ ]);
291
+ const classTypes = new Set([
292
+ 'class_declaration', 'class_definition', 'class_specifier',
293
+ 'struct_item', 'impl_item' // Rust
294
+ ]);
295
+ const importTypes = new Set([
296
+ 'import_statement', 'import_declaration', 'import_from_statement',
297
+ 'import_spec', 'use_declaration' // Rust
298
+ ]);
299
+ const branchTypes = new Set([
300
+ 'if_statement', 'if_expression', 'conditional_expression',
301
+ 'while_statement', 'for_statement', 'for_in_statement',
302
+ 'for_of_statement', 'switch_statement', 'match_expression',
303
+ 'case_clause', 'match_arm', 'catch_clause', 'except_clause',
304
+ '&&', '||', '??' // Short-circuit operators
305
+ ]);
306
+ let currentDepth = 0;
307
+ walkAST(ast.rootNode, {
308
+ enter: (node) => {
309
+ if (functionTypes.has(node.type)) {
310
+ functions++;
311
+ currentDepth++;
312
+ maxNestingDepth = Math.max(maxNestingDepth, currentDepth);
313
+ }
314
+ if (classTypes.has(node.type)) {
315
+ classes++;
316
+ }
317
+ if (importTypes.has(node.type)) {
318
+ imports++;
319
+ }
320
+ if (branchTypes.has(node.type)) {
321
+ complexity++;
322
+ currentDepth++;
323
+ maxNestingDepth = Math.max(maxNestingDepth, currentDepth);
324
+ }
325
+ },
326
+ leave: (node) => {
327
+ if (functionTypes.has(node.type) || branchTypes.has(node.type)) {
328
+ currentDepth--;
329
+ }
330
+ }
331
+ });
332
+ // Count lines
333
+ const loc = ast.rootNode.text.split('\n').length;
334
+ return {
335
+ loc,
336
+ functions,
337
+ classes,
338
+ maxNestingDepth,
339
+ complexity,
340
+ imports
341
+ };
342
+ }
343
+ // ============================================================================
344
+ // Cache Management
345
+ // ============================================================================
346
+ const astCache = new Map();
347
+ const MAX_CACHE_SIZE = 100;
348
+ export function parseCodeCached(code, filePath, language) {
349
+ const cacheKey = `${filePath}:${code.length}:${code.substring(0, 100)}`;
350
+ if (astCache.has(cacheKey)) {
351
+ return Promise.resolve(astCache.get(cacheKey));
352
+ }
353
+ return parseCode(code, filePath, language).then(ast => {
354
+ if (ast) {
355
+ // LRU eviction
356
+ if (astCache.size >= MAX_CACHE_SIZE) {
357
+ const firstKey = astCache.keys().next().value;
358
+ if (firstKey)
359
+ astCache.delete(firstKey);
360
+ }
361
+ astCache.set(cacheKey, ast);
362
+ }
363
+ return ast;
364
+ });
365
+ }
366
+ export function clearASTParserCache() {
367
+ astCache.clear();
368
+ logger.debug('Cleared AST parser cache');
369
+ }
370
+ // ============================================================================
371
+ // Utility Functions
372
+ // ============================================================================
373
+ /**
374
+ * Get the text of a specific line from code
375
+ */
376
+ export function getLineText(code, lineNumber) {
377
+ const lines = code.split('\n');
378
+ return lines[lineNumber - 1] || '';
379
+ }
380
+ /**
381
+ * Check if language is supported
382
+ */
383
+ export async function isLanguageSupported(language) {
384
+ const grammars = await loadGrammars();
385
+ return grammars.has(language);
386
+ }
387
+ /**
388
+ * Get list of supported languages
389
+ */
390
+ export async function getSupportedLanguages() {
391
+ const grammars = await loadGrammars();
392
+ return Array.from(grammars.keys());
393
+ }
394
+ //# sourceMappingURL=treeSitterParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeSitterParser.js","sourceRoot":"","sources":["../../../src/services/ast/treeSitterParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Tree-Sitter AST Types
3
+ * Type definitions for multi-language AST analysis
4
+ * @version 3.5.0
5
+ */
6
+ export interface ASTNode {
7
+ type: string;
8
+ text: string;
9
+ startPosition: {
10
+ row: number;
11
+ column: number;
12
+ };
13
+ endPosition: {
14
+ row: number;
15
+ column: number;
16
+ };
17
+ children: ASTNode[];
18
+ parent?: ASTNode;
19
+ namedChildren: ASTNode[];
20
+ childCount: number;
21
+ namedChildCount: number;
22
+ isNamed: boolean;
23
+ }
24
+ export interface ParsedAST {
25
+ language: SupportedASTLanguage;
26
+ filePath: string;
27
+ rootNode: ASTNode;
28
+ parseTime: number;
29
+ errors: ASTError[];
30
+ }
31
+ export interface ASTError {
32
+ message: string;
33
+ line: number;
34
+ column: number;
35
+ type: 'syntax' | 'semantic';
36
+ }
37
+ export type SupportedASTLanguage = 'typescript' | 'javascript' | 'tsx' | 'python' | 'go' | 'rust';
38
+ export interface LanguageGrammar {
39
+ language: SupportedASTLanguage;
40
+ extensions: string[];
41
+ parser: unknown;
42
+ }
43
+ export interface ASTQuery {
44
+ /** S-expression pattern for tree-sitter query */
45
+ pattern: string;
46
+ /** Capture names to extract */
47
+ captures: string[];
48
+ /** Description of what this query finds */
49
+ description: string;
50
+ }
51
+ export interface ASTQueryMatch {
52
+ pattern: number;
53
+ captures: Array<{
54
+ name: string;
55
+ node: ASTNode;
56
+ }>;
57
+ }
58
+ export interface TreeSitterRule {
59
+ id: string;
60
+ name: string;
61
+ description: string;
62
+ category: 'security' | 'performance' | 'best-practices' | 'maintainability' | 'architecture';
63
+ severity: 'error' | 'warning' | 'info' | 'suggestion';
64
+ languages: SupportedASTLanguage[];
65
+ enabled: boolean;
66
+ /** Tree-sitter query pattern */
67
+ query: string;
68
+ /** Callback to validate matches and generate issues */
69
+ check: (matches: ASTQueryMatch[], context: TreeSitterContext) => TreeSitterIssue[];
70
+ }
71
+ export interface TreeSitterContext {
72
+ filePath: string;
73
+ code: string;
74
+ ast: ParsedAST;
75
+ }
76
+ export interface TreeSitterIssue {
77
+ ruleId: string;
78
+ message: string;
79
+ severity: 'error' | 'warning' | 'info' | 'suggestion';
80
+ line: number;
81
+ column: number;
82
+ endLine?: number;
83
+ endColumn?: number;
84
+ suggestion?: string;
85
+ quickFix?: {
86
+ description: string;
87
+ replacement: string;
88
+ range: {
89
+ start: number;
90
+ end: number;
91
+ };
92
+ };
93
+ }
94
+ export interface TreeSitterAnalysisResult {
95
+ filePath: string;
96
+ language: SupportedASTLanguage;
97
+ issues: TreeSitterIssue[];
98
+ metrics: TreeSitterMetrics;
99
+ parseTime: number;
100
+ analysisTime: number;
101
+ }
102
+ export interface TreeSitterMetrics {
103
+ /** Total lines of code */
104
+ loc: number;
105
+ /** Number of functions/methods */
106
+ functions: number;
107
+ /** Number of classes */
108
+ classes: number;
109
+ /** Maximum nesting depth */
110
+ maxNestingDepth: number;
111
+ /** Cyclomatic complexity estimate */
112
+ complexity: number;
113
+ /** Number of imports/dependencies */
114
+ imports: number;
115
+ }
116
+ /** Common node types across languages */
117
+ export declare const CommonNodeTypes: {
118
+ FUNCTION: string[];
119
+ CLASS: string[];
120
+ VARIABLE: string[];
121
+ CALL: string[];
122
+ BINARY: string[];
123
+ CONDITIONAL: string[];
124
+ LOOP: string[];
125
+ RETURN: string[];
126
+ THROW: string[];
127
+ TRY: string[];
128
+ CATCH: string[];
129
+ IMPORT: string[];
130
+ EXPORT: string[];
131
+ STRING: string[];
132
+ NUMBER: string[];
133
+ BOOLEAN: string[];
134
+ COMMENT: string[];
135
+ };
136
+ export interface NodeVisitor {
137
+ enter?: (node: ASTNode) => void;
138
+ leave?: (node: ASTNode) => void;
139
+ }
140
+ export interface NodeFilter {
141
+ type?: string | string[];
142
+ text?: string | RegExp;
143
+ hasChild?: string;
144
+ hasParent?: string;
145
+ }
146
+ export interface ASTNodeLocation {
147
+ line: number;
148
+ column: number;
149
+ offset?: number;
150
+ }
151
+ export interface TreeSitterQuickFix {
152
+ description: string;
153
+ replacement: string;
154
+ range: {
155
+ start: number;
156
+ end: number;
157
+ };
158
+ }
159
+ export interface ASTCapture {
160
+ name: string;
161
+ node: ASTNode;
162
+ }
163
+ export interface ASTVisitor {
164
+ enter?: (node: ASTNode) => void;
165
+ leave?: (node: ASTNode) => void;
166
+ }
167
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/ast/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Tree-Sitter AST Types
3
+ * Type definitions for multi-language AST analysis
4
+ * @version 3.5.0
5
+ */
6
+ // ============================================================================
7
+ // Node Type Helpers
8
+ // ============================================================================
9
+ /** Common node types across languages */
10
+ export const CommonNodeTypes = {
11
+ // Declarations
12
+ FUNCTION: ['function_declaration', 'function_definition', 'method_declaration', 'arrow_function'],
13
+ CLASS: ['class_declaration', 'class_definition', 'class_specifier'],
14
+ VARIABLE: ['variable_declaration', 'lexical_declaration', 'assignment_expression'],
15
+ // Expressions
16
+ CALL: ['call_expression', 'function_call', 'invocation_expression'],
17
+ BINARY: ['binary_expression', 'comparison_operator'],
18
+ CONDITIONAL: ['if_statement', 'conditional_expression', 'ternary_expression'],
19
+ LOOP: ['for_statement', 'while_statement', 'for_in_statement', 'for_of_statement'],
20
+ // Control Flow
21
+ RETURN: ['return_statement'],
22
+ THROW: ['throw_statement'],
23
+ TRY: ['try_statement', 'try_expression'],
24
+ CATCH: ['catch_clause', 'except_clause'],
25
+ // Imports
26
+ IMPORT: ['import_statement', 'import_declaration', 'import_from_statement'],
27
+ EXPORT: ['export_statement', 'export_declaration'],
28
+ // Literals
29
+ STRING: ['string', 'string_literal', 'template_string'],
30
+ NUMBER: ['number', 'integer', 'float'],
31
+ BOOLEAN: ['true', 'false', 'boolean'],
32
+ // Comments
33
+ COMMENT: ['comment', 'line_comment', 'block_comment'],
34
+ };
35
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/ast/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA+IH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,yCAAyC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,eAAe;IACf,QAAQ,EAAE,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;IACjG,KAAK,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;IACnE,QAAQ,EAAE,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,CAAC;IAElF,cAAc;IACd,IAAI,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,CAAC;IACnE,MAAM,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;IACpD,WAAW,EAAE,CAAC,cAAc,EAAE,wBAAwB,EAAE,oBAAoB,CAAC;IAC7E,IAAI,EAAE,CAAC,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;IAElF,eAAe;IACf,MAAM,EAAE,CAAC,kBAAkB,CAAC;IAC5B,KAAK,EAAE,CAAC,iBAAiB,CAAC;IAC1B,GAAG,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACxC,KAAK,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IAExC,UAAU;IACV,MAAM,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,CAAC;IAC3E,MAAM,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IAElD,WAAW;IACX,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;IACvD,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;IACtC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;IAErC,WAAW;IACX,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC;CACtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codeAnalyzer.d.ts","sourceRoot":"","sources":["../../src/services/codeAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeAnalyzer.d.ts","sourceRoot":"","sources":["../../src/services/codeAnalyzer.ts"],"names":[],"mappings":"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"}