code-auditor-mcp 1.0.0 → 1.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.
Files changed (113) hide show
  1. package/README.md +72 -2
  2. package/dist/api/index.d.ts +1 -0
  3. package/dist/api/index.d.ts.map +1 -0
  4. package/dist/api/index.js +3 -0
  5. package/dist/api/index.js.map +1 -0
  6. package/dist/cli.d.ts +1 -1
  7. package/dist/cli.js +229 -22
  8. package/dist/cli.js.map +1 -1
  9. package/dist/codeIndexDb.d.ts +150 -0
  10. package/dist/codeIndexDb.d.ts.map +1 -0
  11. package/dist/codeIndexDb.js +847 -0
  12. package/dist/codeIndexDb.js.map +1 -0
  13. package/dist/codeIndexService.d.ts +66 -0
  14. package/dist/codeIndexService.d.ts.map +1 -0
  15. package/dist/codeIndexService.js +201 -0
  16. package/dist/codeIndexService.js.map +1 -0
  17. package/dist/config/configLoader.d.ts.map +1 -1
  18. package/dist/config/configLoader.js +17 -1
  19. package/dist/config/configLoader.js.map +1 -1
  20. package/dist/config/defaults.d.ts +9 -0
  21. package/dist/config/defaults.d.ts.map +1 -1
  22. package/dist/config/defaults.js +9 -0
  23. package/dist/config/defaults.js.map +1 -1
  24. package/dist/constants.d.ts +8 -0
  25. package/dist/constants.d.ts.map +1 -0
  26. package/dist/constants.js +14 -0
  27. package/dist/constants.js.map +1 -0
  28. package/dist/functionScanner.d.ts +30 -0
  29. package/dist/functionScanner.d.ts.map +1 -0
  30. package/dist/functionScanner.js +264 -0
  31. package/dist/functionScanner.js.map +1 -0
  32. package/dist/generators/AWSQConfigGenerator.d.ts +8 -0
  33. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -0
  34. package/dist/generators/AWSQConfigGenerator.js +33 -0
  35. package/dist/generators/AWSQConfigGenerator.js.map +1 -0
  36. package/dist/generators/AiderConfigGenerator.d.ts +8 -0
  37. package/dist/generators/AiderConfigGenerator.d.ts.map +1 -0
  38. package/dist/generators/AiderConfigGenerator.js +23 -0
  39. package/dist/generators/AiderConfigGenerator.js.map +1 -0
  40. package/dist/generators/BaseConfigGenerator.d.ts +51 -0
  41. package/dist/generators/BaseConfigGenerator.d.ts.map +1 -0
  42. package/dist/generators/BaseConfigGenerator.js +67 -0
  43. package/dist/generators/BaseConfigGenerator.js.map +1 -0
  44. package/dist/generators/ClaudeConfigGenerator.d.ts +14 -0
  45. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -0
  46. package/dist/generators/ClaudeConfigGenerator.js +70 -0
  47. package/dist/generators/ClaudeConfigGenerator.js.map +1 -0
  48. package/dist/generators/ClineConfigGenerator.d.ts +9 -0
  49. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -0
  50. package/dist/generators/ClineConfigGenerator.js +26 -0
  51. package/dist/generators/ClineConfigGenerator.js.map +1 -0
  52. package/dist/generators/CodeiumConfigGenerator.d.ts +8 -0
  53. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -0
  54. package/dist/generators/CodeiumConfigGenerator.js +30 -0
  55. package/dist/generators/CodeiumConfigGenerator.js.map +1 -0
  56. package/dist/generators/ConfigGeneratorFactory.d.ts +35 -0
  57. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -0
  58. package/dist/generators/ConfigGeneratorFactory.js +77 -0
  59. package/dist/generators/ConfigGeneratorFactory.js.map +1 -0
  60. package/dist/generators/ContinueConfigGenerator.d.ts +12 -0
  61. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -0
  62. package/dist/generators/ContinueConfigGenerator.js +99 -0
  63. package/dist/generators/ContinueConfigGenerator.js.map +1 -0
  64. package/dist/generators/CopilotConfigGenerator.d.ts +12 -0
  65. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -0
  66. package/dist/generators/CopilotConfigGenerator.js +77 -0
  67. package/dist/generators/CopilotConfigGenerator.js.map +1 -0
  68. package/dist/generators/CursorConfigGenerator.d.ts +12 -0
  69. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -0
  70. package/dist/generators/CursorConfigGenerator.js +80 -0
  71. package/dist/generators/CursorConfigGenerator.js.map +1 -0
  72. package/dist/generators/JetBrainsConfigGenerator.d.ts +8 -0
  73. package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -0
  74. package/dist/generators/JetBrainsConfigGenerator.js +36 -0
  75. package/dist/generators/JetBrainsConfigGenerator.js.map +1 -0
  76. package/dist/generators/VSCodeConfigGenerator.d.ts +8 -0
  77. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -0
  78. package/dist/generators/VSCodeConfigGenerator.js +29 -0
  79. package/dist/generators/VSCodeConfigGenerator.js.map +1 -0
  80. package/dist/generators/index.d.ts +13 -0
  81. package/dist/generators/index.d.ts.map +1 -0
  82. package/dist/generators/index.js +14 -0
  83. package/dist/generators/index.js.map +1 -0
  84. package/dist/mcp-standalone.js +0 -0
  85. package/dist/mcp.js +483 -2
  86. package/dist/mcp.js.map +1 -1
  87. package/dist/search/QueryParser.d.ts +60 -0
  88. package/dist/search/QueryParser.d.ts.map +1 -0
  89. package/dist/search/QueryParser.js +330 -0
  90. package/dist/search/QueryParser.js.map +1 -0
  91. package/dist/search/index.d.ts +7 -0
  92. package/dist/search/index.d.ts.map +1 -0
  93. package/dist/search/index.js +6 -0
  94. package/dist/search/index.js.map +1 -0
  95. package/dist/test-multi-strategy-search.d.ts +3 -0
  96. package/dist/test-multi-strategy-search.d.ts.map +1 -0
  97. package/dist/test-multi-strategy-search.js +170 -0
  98. package/dist/test-multi-strategy-search.js.map +1 -0
  99. package/dist/types.d.ts +136 -0
  100. package/dist/types.d.ts.map +1 -1
  101. package/dist/ui/InteractivePrompts.d.ts +37 -0
  102. package/dist/ui/InteractivePrompts.d.ts.map +1 -0
  103. package/dist/ui/InteractivePrompts.js +147 -0
  104. package/dist/ui/InteractivePrompts.js.map +1 -0
  105. package/dist/ui/index.d.ts +2 -0
  106. package/dist/ui/index.d.ts.map +1 -0
  107. package/dist/ui/index.js +3 -0
  108. package/dist/ui/index.js.map +1 -0
  109. package/dist/utils/jsDocParser.d.ts +84 -0
  110. package/dist/utils/jsDocParser.d.ts.map +1 -0
  111. package/dist/utils/jsDocParser.js +366 -0
  112. package/dist/utils/jsDocParser.js.map +1 -0
  113. package/package.json +31 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryParser.d.ts","sourceRoot":"","sources":["../../src/search/QueryParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IAEtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAwD9B;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAgBtB;IAEX;;;;OAIG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAyExC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAetB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA4E5B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IA+BhB;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAqB1C;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAK1C;AAGD,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -0,0 +1,330 @@
1
+ /**
2
+ * QueryParser - Parses search queries into structured format with tokenization and synonym expansion
3
+ *
4
+ * Supports:
5
+ * - Multi-word queries with intelligent tokenization
6
+ * - Exact phrase matching with quotes
7
+ * - Excluded terms with minus operator
8
+ * - Special operators (type:, param:, return:, etc.)
9
+ * - Synonym expansion for common programming terms
10
+ * - Fuzzy search and stemming flags
11
+ */
12
+ export class QueryParser {
13
+ // Comprehensive synonym mappings for programming terms
14
+ static SYNONYMS = {
15
+ // Common programming verbs
16
+ 'get': ['fetch', 'retrieve', 'obtain', 'find', 'query', 'load', 'read'],
17
+ 'set': ['update', 'save', 'store', 'write', 'assign', 'modify', 'change'],
18
+ 'create': ['make', 'new', 'generate', 'build', 'construct', 'initialize', 'init'],
19
+ 'delete': ['remove', 'destroy', 'drop', 'clear', 'purge', 'erase'],
20
+ 'add': ['append', 'insert', 'push', 'attach', 'include'],
21
+ 'remove': ['delete', 'pop', 'detach', 'exclude', 'eliminate'],
22
+ // Data structures
23
+ 'array': ['list', 'vector', 'collection', 'arr'],
24
+ 'object': ['obj', 'dict', 'dictionary', 'map', 'hash', 'record'],
25
+ 'string': ['str', 'text', 'chars', 'characters'],
26
+ 'number': ['num', 'int', 'integer', 'float', 'double', 'numeric'],
27
+ 'boolean': ['bool', 'flag', 'true/false'],
28
+ // Common patterns
29
+ 'validate': ['check', 'verify', 'test', 'ensure', 'confirm'],
30
+ 'handler': ['listener', 'callback', 'processor', 'controller'],
31
+ 'util': ['utility', 'helper', 'tools', 'utils'],
32
+ 'config': ['configuration', 'settings', 'options', 'conf'],
33
+ 'auth': ['authentication', 'authorization', 'authenticate', 'authorize'],
34
+ 'user': ['users', 'person', 'account', 'member', 'client'],
35
+ 'error': ['err', 'exception', 'fault', 'failure', 'problem'],
36
+ 'log': ['logger', 'logging', 'trace', 'debug', 'console'],
37
+ // HTTP/API related
38
+ 'api': ['endpoint', 'route', 'service', 'rest', 'graphql'],
39
+ 'request': ['req', 'http', 'call', 'fetch'],
40
+ 'response': ['res', 'reply', 'result', 'output'],
41
+ // Database related
42
+ 'database': ['db', 'storage', 'datastore', 'repository'],
43
+ 'query': ['sql', 'search', 'find', 'select'],
44
+ 'table': ['collection', 'entity', 'model', 'schema'],
45
+ // React/Frontend specific
46
+ 'component': ['comp', 'widget', 'element', 'view'],
47
+ 'render': ['display', 'show', 'present', 'draw'],
48
+ 'state': ['status', 'data', 'store', 'context'],
49
+ 'props': ['properties', 'attributes', 'params', 'arguments'],
50
+ // Async patterns
51
+ 'async': ['asynchronous', 'promise', 'await', 'concurrent'],
52
+ 'sync': ['synchronous', 'blocking', 'sequential'],
53
+ 'callback': ['cb', 'handler', 'listener', 'oncomplete'],
54
+ // Testing
55
+ 'test': ['tests', 'spec', 'suite', 'unit', 'integration', 'e2e'],
56
+ 'mock': ['stub', 'fake', 'spy', 'double'],
57
+ // Common abbreviations
58
+ 'fn': ['function', 'func', 'method'],
59
+ 'param': ['parameter', 'arg', 'argument'],
60
+ 'return': ['returns', 'output', 'result'],
61
+ 'doc': ['documentation', 'docs', 'comment', 'jsdoc']
62
+ };
63
+ // Special operators that can be used in queries
64
+ static OPERATORS = {
65
+ 'type:': 'fileType',
66
+ 'file:': 'filePath',
67
+ 'path:': 'filePath',
68
+ 'lang:': 'language',
69
+ 'language:': 'language',
70
+ 'param:': 'parameters',
71
+ 'parameter:': 'parameters',
72
+ 'return:': 'returnType',
73
+ 'returns:': 'returnType',
74
+ 'complexity:': 'complexity',
75
+ 'jsdoc:': 'hasJsDoc',
76
+ 'doc:': 'hasJsDoc',
77
+ 'since:': 'dateRange',
78
+ 'before:': 'dateRange',
79
+ 'after:': 'dateRange'
80
+ };
81
+ /**
82
+ * Parse a search query string into a structured ParsedQuery object
83
+ * @param query The raw search query string
84
+ * @returns ParsedQuery object with extracted terms, filters, and options
85
+ */
86
+ parse(query) {
87
+ const result = {
88
+ terms: [],
89
+ originalTerms: [],
90
+ phrases: [],
91
+ excludedTerms: [],
92
+ filters: {},
93
+ searchFields: undefined,
94
+ fuzzy: false,
95
+ stemming: false
96
+ };
97
+ if (!query || query.trim().length === 0) {
98
+ return result;
99
+ }
100
+ // Extract exact phrases (quoted strings) first
101
+ const phrases = this.extractPhrases(query);
102
+ result.phrases = phrases.map(p => p.value);
103
+ // Remove phrases from query for further processing
104
+ let remainingQuery = query;
105
+ phrases.forEach(phrase => {
106
+ remainingQuery = remainingQuery.replace(phrase.original, ' ');
107
+ });
108
+ // Extract operators and their values
109
+ const { operators, cleanedQuery } = this.extractOperators(remainingQuery);
110
+ this.applyOperatorFilters(operators, result);
111
+ // Process remaining tokens
112
+ const tokens = this.tokenize(cleanedQuery);
113
+ for (const token of tokens) {
114
+ if (token.startsWith('-')) {
115
+ // Excluded term
116
+ const term = token.slice(1);
117
+ if (term.length > 0) {
118
+ result.excludedTerms.push(term);
119
+ // Also add synonyms to excluded terms
120
+ const synonyms = this.getSynonyms(term);
121
+ result.excludedTerms.push(...synonyms);
122
+ }
123
+ }
124
+ else if (token === '~' || token === 'fuzzy') {
125
+ // Enable fuzzy search
126
+ result.fuzzy = true;
127
+ }
128
+ else if (token === 'stem' || token === 'stemming') {
129
+ // Enable stemming
130
+ result.stemming = true;
131
+ }
132
+ else {
133
+ // Regular search term
134
+ result.originalTerms.push(token);
135
+ result.terms.push(token);
136
+ // Add synonyms for the term
137
+ const synonyms = this.getSynonyms(token);
138
+ result.terms.push(...synonyms);
139
+ }
140
+ }
141
+ // Remove duplicates
142
+ result.originalTerms = [...new Set(result.originalTerms)];
143
+ result.terms = [...new Set(result.terms)];
144
+ result.excludedTerms = [...new Set(result.excludedTerms)];
145
+ result.phrases = [...new Set(result.phrases)];
146
+ // Set default search fields if not specified
147
+ if (!result.searchFields || result.searchFields.length === 0) {
148
+ result.searchFields = ['name', 'signature', 'jsDoc', 'purpose', 'context'];
149
+ }
150
+ return result;
151
+ }
152
+ /**
153
+ * Extract quoted phrases from the query
154
+ * @param query The query string
155
+ * @returns Array of phrase objects with original and cleaned value
156
+ */
157
+ extractPhrases(query) {
158
+ const phrases = [];
159
+ const phraseRegex = /["']([^"']+)["']/g;
160
+ let match;
161
+ while ((match = phraseRegex.exec(query)) !== null) {
162
+ phrases.push({
163
+ original: match[0],
164
+ value: match[1].trim()
165
+ });
166
+ }
167
+ return phrases;
168
+ }
169
+ /**
170
+ * Extract operators and their values from the query
171
+ * @param query The query string
172
+ * @returns Object with operators map and cleaned query
173
+ */
174
+ extractOperators(query) {
175
+ const operators = new Map();
176
+ let cleanedQuery = query;
177
+ // Match operator:value patterns
178
+ const operatorRegex = /(\w+):(\S+)/g;
179
+ let match;
180
+ while ((match = operatorRegex.exec(query)) !== null) {
181
+ const operator = match[1].toLowerCase() + ':';
182
+ const value = match[2];
183
+ if (operator in QueryParser.OPERATORS) {
184
+ operators.set(operator, value);
185
+ cleanedQuery = cleanedQuery.replace(match[0], ' ');
186
+ }
187
+ }
188
+ return { operators, cleanedQuery: cleanedQuery.trim() };
189
+ }
190
+ /**
191
+ * Apply operator filters to the parsed query
192
+ * @param operators Map of operators and values
193
+ * @param parsedQuery The parsed query object to update
194
+ */
195
+ applyOperatorFilters(operators, parsedQuery) {
196
+ operators.forEach((value, operator) => {
197
+ const filterKey = QueryParser.OPERATORS[operator];
198
+ switch (filterKey) {
199
+ case 'fileType':
200
+ parsedQuery.filters.fileType = value;
201
+ break;
202
+ case 'filePath':
203
+ parsedQuery.filters.filePath = value;
204
+ break;
205
+ case 'language':
206
+ parsedQuery.filters.language = value;
207
+ break;
208
+ case 'hasJsDoc':
209
+ parsedQuery.filters.hasJsDoc = value.toLowerCase() === 'true' || value === '1';
210
+ break;
211
+ case 'complexity':
212
+ if (value.includes('-')) {
213
+ const [min, max] = value.split('-').map(v => parseInt(v.trim(), 10));
214
+ if (!isNaN(min) && !isNaN(max)) {
215
+ parsedQuery.filters.complexity = { min, max };
216
+ }
217
+ }
218
+ else {
219
+ const complexityValue = parseInt(value, 10);
220
+ if (!isNaN(complexityValue)) {
221
+ parsedQuery.filters.complexity = {
222
+ min: complexityValue,
223
+ max: complexityValue
224
+ };
225
+ }
226
+ }
227
+ break;
228
+ case 'dateRange':
229
+ if (!parsedQuery.filters.dateRange) {
230
+ parsedQuery.filters.dateRange = {};
231
+ }
232
+ const date = new Date(value);
233
+ if (!isNaN(date.getTime())) {
234
+ if (operator === 'since:' || operator === 'after:') {
235
+ parsedQuery.filters.dateRange.start = date;
236
+ }
237
+ else if (operator === 'before:') {
238
+ parsedQuery.filters.dateRange.end = date;
239
+ }
240
+ }
241
+ break;
242
+ case 'parameters':
243
+ // Add parameter search to search fields
244
+ if (!parsedQuery.searchFields) {
245
+ parsedQuery.searchFields = [];
246
+ }
247
+ parsedQuery.searchFields.push('parameters');
248
+ parsedQuery.terms.push(value);
249
+ break;
250
+ case 'returnType':
251
+ // Add return type to search fields
252
+ if (!parsedQuery.searchFields) {
253
+ parsedQuery.searchFields = [];
254
+ }
255
+ parsedQuery.searchFields.push('returnType');
256
+ parsedQuery.terms.push(value);
257
+ break;
258
+ }
259
+ });
260
+ }
261
+ /**
262
+ * Tokenize a string into individual words
263
+ * @param text The text to tokenize
264
+ * @returns Array of tokens
265
+ */
266
+ tokenize(text) {
267
+ // Split on whitespace and common delimiters, but preserve hyphenated words
268
+ const tokens = text
269
+ .toLowerCase()
270
+ .split(/\s+/)
271
+ .filter(token => token.length > 0);
272
+ // Further split camelCase and snake_case
273
+ const expandedTokens = [];
274
+ for (const token of tokens) {
275
+ // Split camelCase
276
+ const camelCaseTokens = token.split(/(?=[A-Z])/).filter(t => t.length > 0);
277
+ if (camelCaseTokens.length > 1) {
278
+ expandedTokens.push(token); // Keep original
279
+ expandedTokens.push(...camelCaseTokens.map(t => t.toLowerCase()));
280
+ }
281
+ else {
282
+ // Split snake_case
283
+ const snakeCaseTokens = token.split('_').filter(t => t.length > 0);
284
+ if (snakeCaseTokens.length > 1) {
285
+ expandedTokens.push(token); // Keep original
286
+ expandedTokens.push(...snakeCaseTokens);
287
+ }
288
+ else {
289
+ expandedTokens.push(token);
290
+ }
291
+ }
292
+ }
293
+ return [...new Set(expandedTokens)];
294
+ }
295
+ /**
296
+ * Get synonyms for a given term
297
+ * @param term The term to find synonyms for
298
+ * @returns Array of synonyms (not including the original term)
299
+ */
300
+ getSynonyms(term) {
301
+ const synonyms = [];
302
+ const lowerTerm = term.toLowerCase();
303
+ // Check if term is a direct key
304
+ if (QueryParser.SYNONYMS[lowerTerm]) {
305
+ synonyms.push(...QueryParser.SYNONYMS[lowerTerm]);
306
+ }
307
+ // Check if term is a value in any synonym group
308
+ for (const [key, values] of Object.entries(QueryParser.SYNONYMS)) {
309
+ if (values.includes(lowerTerm)) {
310
+ synonyms.push(key);
311
+ // Add other synonyms from the same group
312
+ synonyms.push(...values.filter(v => v !== lowerTerm));
313
+ }
314
+ }
315
+ return [...new Set(synonyms)];
316
+ }
317
+ /**
318
+ * Expand a query with synonyms (utility method)
319
+ * @param query The original query
320
+ * @returns Expanded query with synonyms
321
+ */
322
+ expandQuery(query) {
323
+ const parsed = this.parse(query);
324
+ const allTerms = [...new Set([...parsed.terms, ...parsed.phrases])];
325
+ return allTerms.join(' ');
326
+ }
327
+ }
328
+ // Export a singleton instance for convenience
329
+ export const queryParser = new QueryParser();
330
+ //# sourceMappingURL=QueryParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryParser.js","sourceRoot":"","sources":["../../src/search/QueryParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Search module exports
3
+ * Provides query parsing and search functionality for the code index
4
+ */
5
+ export { QueryParser, queryParser } from './QueryParser';
6
+ export type { ParsedQuery } from '../types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Search module exports
3
+ * Provides query parsing and search functionality for the code index
4
+ */
5
+ export { QueryParser, queryParser } from './QueryParser';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-multi-strategy-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-multi-strategy-search.d.ts","sourceRoot":"","sources":["../src/test-multi-strategy-search.ts"],"names":[],"mappings":""}
@@ -0,0 +1,170 @@
1
+ #!/usr/bin/env node
2
+ import { CodeIndexDB } from './codeIndexDB.js';
3
+ import { QueryParser } from './search/QueryParser.js';
4
+ async function testMultiStrategySearch() {
5
+ const db = new CodeIndexDB('./.code-index/test.db');
6
+ const queryParser = new QueryParser();
7
+ try {
8
+ await db.initialize();
9
+ console.log('Database initialized');
10
+ // Add some test functions
11
+ const testFunctions = [
12
+ {
13
+ name: 'getUserData',
14
+ signature: 'getUserData(userId: string): Promise<User>',
15
+ purpose: 'Fetch user information from the database',
16
+ context: 'Part of the user management module',
17
+ filePath: '/src/services/userService.ts',
18
+ language: 'typescript',
19
+ startLine: 10,
20
+ endLine: 20,
21
+ dependencies: ['database', 'logger'],
22
+ jsDoc: {
23
+ description: 'Retrieves user data from the database by user ID',
24
+ params: [{ name: 'userId', type: 'string', description: 'The unique user identifier' }],
25
+ returns: { type: 'Promise<User>', description: 'A promise that resolves to user data' }
26
+ },
27
+ parameters: [
28
+ { name: 'userId', type: 'string', description: 'The unique user identifier' }
29
+ ],
30
+ returnType: 'Promise<User>',
31
+ complexity: 5
32
+ },
33
+ {
34
+ name: 'createUser',
35
+ signature: 'createUser(data: CreateUserDto): Promise<User>',
36
+ purpose: 'Create a new user in the system',
37
+ context: 'User registration process',
38
+ filePath: '/src/services/userService.ts',
39
+ language: 'typescript',
40
+ startLine: 25,
41
+ endLine: 45,
42
+ dependencies: ['database', 'validator', 'bcrypt'],
43
+ jsDoc: {
44
+ description: 'Creates a new user with validation and password hashing',
45
+ params: [{ name: 'data', type: 'CreateUserDto', description: 'User creation data' }],
46
+ returns: { type: 'Promise<User>', description: 'The created user object' }
47
+ },
48
+ parameters: [
49
+ { name: 'data', type: 'CreateUserDto', description: 'User creation data' }
50
+ ],
51
+ returnType: 'Promise<User>',
52
+ complexity: 8
53
+ },
54
+ {
55
+ name: 'validateUserInput',
56
+ signature: 'validateUserInput(input: any): ValidationResult',
57
+ purpose: 'Validate user input data',
58
+ context: 'Input validation utilities',
59
+ filePath: '/src/utils/validation.ts',
60
+ language: 'typescript',
61
+ startLine: 5,
62
+ endLine: 25,
63
+ dependencies: ['joi', 'validator'],
64
+ jsDoc: {
65
+ description: 'Validates user input against defined schema rules',
66
+ params: [{ name: 'input', type: 'any', description: 'Input to validate' }],
67
+ returns: { type: 'ValidationResult', description: 'Validation result with errors if any' }
68
+ },
69
+ parameters: [
70
+ { name: 'input', type: 'any', description: 'Input to validate' }
71
+ ],
72
+ returnType: 'ValidationResult',
73
+ complexity: 6
74
+ },
75
+ {
76
+ name: 'logError',
77
+ signature: 'logError(error: Error, context?: string): void',
78
+ purpose: 'Log application errors with context',
79
+ context: 'Error handling and logging',
80
+ filePath: '/src/utils/logger.ts',
81
+ language: 'typescript',
82
+ startLine: 15,
83
+ endLine: 20,
84
+ dependencies: ['winston', 'sentry'],
85
+ jsDoc: {
86
+ description: 'Logs errors to console and external monitoring services',
87
+ params: [
88
+ { name: 'error', type: 'Error', description: 'The error object' },
89
+ { name: 'context', type: 'string', description: 'Optional context information' }
90
+ ]
91
+ },
92
+ parameters: [
93
+ { name: 'error', type: 'Error', description: 'The error object' },
94
+ { name: 'context', type: 'string', description: 'Optional context information' }
95
+ ],
96
+ returnType: 'void',
97
+ complexity: 3
98
+ }
99
+ ];
100
+ // Register test functions
101
+ for (const func of testFunctions) {
102
+ await db.registerFunction(func);
103
+ }
104
+ console.log('Test functions registered');
105
+ // Test 1: Multi-word query (should use AND logic)
106
+ console.log('\n=== Test 1: Multi-word query "get user" ===');
107
+ const parsed1 = queryParser.parse('get user');
108
+ const results1 = await db.searchFunctions({ parsedQuery: parsed1 });
109
+ console.log(`Query terms: ${parsed1.terms.join(', ')}`);
110
+ console.log(`Found ${results1.totalCount} results:`);
111
+ results1.functions.forEach(f => {
112
+ console.log(` - ${f.name} (score: ${f.score}) - ${f.purpose}`);
113
+ });
114
+ // Test 2: Exact phrase matching
115
+ console.log('\n=== Test 2: Exact phrase "user data" ===');
116
+ const parsed2 = queryParser.parse('"user data"');
117
+ const results2 = await db.searchFunctions({ parsedQuery: parsed2 });
118
+ console.log(`Phrases: ${parsed2.phrases.join(', ')}`);
119
+ console.log(`Found ${results2.totalCount} results:`);
120
+ results2.functions.forEach(f => {
121
+ console.log(` - ${f.name} (score: ${f.score}) - ${f.purpose}`);
122
+ });
123
+ // Test 3: Excluded terms
124
+ console.log('\n=== Test 3: Query "user -create" (exclude create) ===');
125
+ const parsed3 = queryParser.parse('user -create');
126
+ const results3 = await db.searchFunctions({ parsedQuery: parsed3 });
127
+ console.log(`Terms: ${parsed3.terms.join(', ')}, Excluded: ${parsed3.excludedTerms.join(', ')}`);
128
+ console.log(`Found ${results3.totalCount} results:`);
129
+ results3.functions.forEach(f => {
130
+ console.log(` - ${f.name} (score: ${f.score}) - ${f.purpose}`);
131
+ });
132
+ // Test 4: Synonym expansion
133
+ console.log('\n=== Test 4: Query "fetch" (should find get via synonym) ===');
134
+ const parsed4 = queryParser.parse('fetch');
135
+ const results4 = await db.searchFunctions({ parsedQuery: parsed4 });
136
+ console.log(`Expanded terms: ${parsed4.terms.join(', ')}`);
137
+ console.log(`Found ${results4.totalCount} results:`);
138
+ results4.functions.forEach(f => {
139
+ console.log(` - ${f.name} (score: ${f.score}) - ${f.purpose}`);
140
+ });
141
+ // Test 5: Complex query with operators
142
+ console.log('\n=== Test 5: Complex query "validate lang:typescript complexity:5-10" ===');
143
+ const parsed5 = queryParser.parse('validate lang:typescript complexity:5-10');
144
+ const results5 = await db.searchFunctions({ parsedQuery: parsed5 });
145
+ console.log(`Terms: ${parsed5.terms.join(', ')}`);
146
+ console.log(`Filters:`, parsed5.filters);
147
+ console.log(`Found ${results5.totalCount} results:`);
148
+ results5.functions.forEach(f => {
149
+ console.log(` - ${f.name} (score: ${f.score}) - complexity: ${f.complexity}`);
150
+ });
151
+ // Test 6: Fuzzy search
152
+ console.log('\n=== Test 6: Fuzzy search "usr ~" ===');
153
+ const parsed6 = queryParser.parse('usr ~');
154
+ const results6 = await db.searchFunctions({ parsedQuery: parsed6 });
155
+ console.log(`Terms: ${parsed6.terms.join(', ')}, Fuzzy: ${parsed6.fuzzy}`);
156
+ console.log(`Found ${results6.totalCount} results:`);
157
+ results6.functions.forEach(f => {
158
+ console.log(` - ${f.name} (score: ${f.score}) - ${f.purpose}`);
159
+ });
160
+ }
161
+ catch (error) {
162
+ console.error('Test failed:', error);
163
+ }
164
+ finally {
165
+ await db.close();
166
+ }
167
+ }
168
+ // Run tests
169
+ testMultiStrategySearch();
170
+ //# sourceMappingURL=test-multi-strategy-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-multi-strategy-search.js","sourceRoot":"","sources":["../src/test-multi-strategy-search.ts"],"names":[],"mappings":"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"}