code-auditor-mcp 1.0.1 → 1.1.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/README.md +41 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +3 -0
- package/dist/api/index.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +229 -22
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDb.d.ts +150 -0
- package/dist/codeIndexDb.d.ts.map +1 -0
- package/dist/codeIndexDb.js +847 -0
- package/dist/codeIndexDb.js.map +1 -0
- package/dist/codeIndexService.d.ts +66 -0
- package/dist/codeIndexService.d.ts.map +1 -0
- package/dist/codeIndexService.js +201 -0
- package/dist/codeIndexService.js.map +1 -0
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +17 -1
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +9 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +9 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +14 -0
- package/dist/constants.js.map +1 -0
- package/dist/functionScanner.d.ts +30 -0
- package/dist/functionScanner.d.ts.map +1 -0
- package/dist/functionScanner.js +264 -0
- package/dist/functionScanner.js.map +1 -0
- package/dist/generators/AWSQConfigGenerator.d.ts +8 -0
- package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -0
- package/dist/generators/AWSQConfigGenerator.js +33 -0
- package/dist/generators/AWSQConfigGenerator.js.map +1 -0
- package/dist/generators/AiderConfigGenerator.d.ts +8 -0
- package/dist/generators/AiderConfigGenerator.d.ts.map +1 -0
- package/dist/generators/AiderConfigGenerator.js +23 -0
- package/dist/generators/AiderConfigGenerator.js.map +1 -0
- package/dist/generators/BaseConfigGenerator.d.ts +51 -0
- package/dist/generators/BaseConfigGenerator.d.ts.map +1 -0
- package/dist/generators/BaseConfigGenerator.js +67 -0
- package/dist/generators/BaseConfigGenerator.js.map +1 -0
- package/dist/generators/ClaudeConfigGenerator.d.ts +14 -0
- package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -0
- package/dist/generators/ClaudeConfigGenerator.js +70 -0
- package/dist/generators/ClaudeConfigGenerator.js.map +1 -0
- package/dist/generators/ClineConfigGenerator.d.ts +9 -0
- package/dist/generators/ClineConfigGenerator.d.ts.map +1 -0
- package/dist/generators/ClineConfigGenerator.js +26 -0
- package/dist/generators/ClineConfigGenerator.js.map +1 -0
- package/dist/generators/CodeiumConfigGenerator.d.ts +8 -0
- package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -0
- package/dist/generators/CodeiumConfigGenerator.js +30 -0
- package/dist/generators/CodeiumConfigGenerator.js.map +1 -0
- package/dist/generators/ConfigGeneratorFactory.d.ts +35 -0
- package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -0
- package/dist/generators/ConfigGeneratorFactory.js +77 -0
- package/dist/generators/ConfigGeneratorFactory.js.map +1 -0
- package/dist/generators/ContinueConfigGenerator.d.ts +12 -0
- package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -0
- package/dist/generators/ContinueConfigGenerator.js +99 -0
- package/dist/generators/ContinueConfigGenerator.js.map +1 -0
- package/dist/generators/CopilotConfigGenerator.d.ts +12 -0
- package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -0
- package/dist/generators/CopilotConfigGenerator.js +77 -0
- package/dist/generators/CopilotConfigGenerator.js.map +1 -0
- package/dist/generators/CursorConfigGenerator.d.ts +12 -0
- package/dist/generators/CursorConfigGenerator.d.ts.map +1 -0
- package/dist/generators/CursorConfigGenerator.js +80 -0
- package/dist/generators/CursorConfigGenerator.js.map +1 -0
- package/dist/generators/JetBrainsConfigGenerator.d.ts +8 -0
- package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -0
- package/dist/generators/JetBrainsConfigGenerator.js +36 -0
- package/dist/generators/JetBrainsConfigGenerator.js.map +1 -0
- package/dist/generators/VSCodeConfigGenerator.d.ts +8 -0
- package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -0
- package/dist/generators/VSCodeConfigGenerator.js +29 -0
- package/dist/generators/VSCodeConfigGenerator.js.map +1 -0
- package/dist/generators/index.d.ts +13 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +14 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/mcp-standalone.js +60 -49
- package/dist/mcp-standalone.js.map +1 -1
- package/dist/mcp.js +483 -2
- package/dist/mcp.js.map +1 -1
- package/dist/search/QueryParser.d.ts +60 -0
- package/dist/search/QueryParser.d.ts.map +1 -0
- package/dist/search/QueryParser.js +330 -0
- package/dist/search/QueryParser.js.map +1 -0
- package/dist/search/index.d.ts +7 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +6 -0
- package/dist/search/index.js.map +1 -0
- package/dist/test-multi-strategy-search.d.ts +3 -0
- package/dist/test-multi-strategy-search.d.ts.map +1 -0
- package/dist/test-multi-strategy-search.js +170 -0
- package/dist/test-multi-strategy-search.js.map +1 -0
- package/dist/types.d.ts +136 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/InteractivePrompts.d.ts +37 -0
- package/dist/ui/InteractivePrompts.d.ts.map +1 -0
- package/dist/ui/InteractivePrompts.js +147 -0
- package/dist/ui/InteractivePrompts.js.map +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/utils/jsDocParser.d.ts +84 -0
- package/dist/utils/jsDocParser.d.ts.map +1 -0
- package/dist/utils/jsDocParser.js +366 -0
- package/dist/utils/jsDocParser.js.map +1 -0
- package/package.json +23 -3
package/dist/mcp.js
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// MCP servers use stdio: stdout for protocol messages, stderr for logging
|
|
3
|
+
// All log messages must go to stderr to avoid interfering with MCP protocol
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
console.error(chalk.blue('[INFO]'), 'Loading modules...');
|
|
2
6
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
7
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
8
|
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
9
|
+
console.error(chalk.blue('[INFO]'), 'MCP SDK loaded');
|
|
5
10
|
import { createAuditRunner } from './auditRunner.js';
|
|
11
|
+
console.error(chalk.blue('[INFO]'), 'Audit runner loaded');
|
|
12
|
+
import { registerFunctions, searchFunctions, getIndexStats, findDefinition, clearIndex, syncFileIndex } from './codeIndexService.js';
|
|
13
|
+
import { scanFunctionsInFile, scanFunctionsInDirectory } from './functionScanner.js';
|
|
14
|
+
import { ConfigGeneratorFactory } from './generators/ConfigGeneratorFactory.js';
|
|
15
|
+
import { DEFAULT_SERVER_URL } from './constants.js';
|
|
16
|
+
console.error(chalk.blue('[INFO]'), 'Code index service loaded');
|
|
6
17
|
import path from 'node:path';
|
|
7
18
|
import fs from 'node:fs/promises';
|
|
8
|
-
import
|
|
19
|
+
import { CodeIndexDB } from './codeIndexDB.js';
|
|
20
|
+
console.error(chalk.blue('[INFO]'), 'All modules loaded successfully');
|
|
9
21
|
const tools = [
|
|
10
22
|
{
|
|
11
23
|
name: 'audit_run',
|
|
@@ -79,8 +91,200 @@ const tools = [
|
|
|
79
91
|
description: 'List all available code analyzers and their capabilities',
|
|
80
92
|
parameters: [],
|
|
81
93
|
},
|
|
94
|
+
{
|
|
95
|
+
name: 'register_functions',
|
|
96
|
+
description: 'Register functions with metadata for code indexing',
|
|
97
|
+
parameters: [
|
|
98
|
+
{
|
|
99
|
+
name: 'functions',
|
|
100
|
+
type: 'array',
|
|
101
|
+
required: true,
|
|
102
|
+
description: 'Array of function objects with metadata',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'overwrite',
|
|
106
|
+
type: 'boolean',
|
|
107
|
+
required: false,
|
|
108
|
+
description: 'Whether to overwrite existing entries',
|
|
109
|
+
default: false,
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: 'search_functions',
|
|
115
|
+
description: 'Search registered functions by various criteria',
|
|
116
|
+
parameters: [
|
|
117
|
+
{
|
|
118
|
+
name: 'query',
|
|
119
|
+
type: 'string',
|
|
120
|
+
required: true,
|
|
121
|
+
description: 'Search query (supports full-text search)',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: 'filters',
|
|
125
|
+
type: 'object',
|
|
126
|
+
required: false,
|
|
127
|
+
description: 'Optional filters (language, filePath, dependencies)',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'limit',
|
|
131
|
+
type: 'number',
|
|
132
|
+
required: false,
|
|
133
|
+
description: 'Maximum results to return',
|
|
134
|
+
default: 50,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: 'offset',
|
|
138
|
+
type: 'number',
|
|
139
|
+
required: false,
|
|
140
|
+
description: 'Offset for pagination',
|
|
141
|
+
default: 0,
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'index_functions',
|
|
147
|
+
description: 'Index functions from TypeScript/JavaScript files',
|
|
148
|
+
parameters: [
|
|
149
|
+
{
|
|
150
|
+
name: 'path',
|
|
151
|
+
type: 'string',
|
|
152
|
+
required: true,
|
|
153
|
+
description: 'File or directory path to index',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: 'recursive',
|
|
157
|
+
type: 'boolean',
|
|
158
|
+
required: false,
|
|
159
|
+
description: 'Recursively index directories',
|
|
160
|
+
default: true,
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: 'fileTypes',
|
|
164
|
+
type: 'array',
|
|
165
|
+
required: false,
|
|
166
|
+
description: 'File extensions to process',
|
|
167
|
+
default: ['.ts', '.tsx', '.js', '.jsx'],
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: 'find_definition',
|
|
173
|
+
description: 'Find the definition of a specific function',
|
|
174
|
+
parameters: [
|
|
175
|
+
{
|
|
176
|
+
name: 'name',
|
|
177
|
+
type: 'string',
|
|
178
|
+
required: true,
|
|
179
|
+
description: 'Function name to search for',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
name: 'filePath',
|
|
183
|
+
type: 'string',
|
|
184
|
+
required: false,
|
|
185
|
+
description: 'Optional file path to narrow search',
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: 'get_index_stats',
|
|
191
|
+
description: 'Get statistics about the code index',
|
|
192
|
+
parameters: [],
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: 'clear_index',
|
|
196
|
+
description: 'Clear all indexed functions',
|
|
197
|
+
parameters: [
|
|
198
|
+
{
|
|
199
|
+
name: 'confirm',
|
|
200
|
+
type: 'boolean',
|
|
201
|
+
required: false,
|
|
202
|
+
description: 'Confirm clearing the index',
|
|
203
|
+
default: false,
|
|
204
|
+
},
|
|
205
|
+
],
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: 'generate_ai_configs',
|
|
209
|
+
description: 'Generate configuration files for AI coding assistants',
|
|
210
|
+
parameters: [
|
|
211
|
+
{
|
|
212
|
+
name: 'tools',
|
|
213
|
+
type: 'array',
|
|
214
|
+
required: true,
|
|
215
|
+
description: 'AI tools to generate configs for (cursor, continue, copilot, claude, etc.)',
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: 'serverUrl',
|
|
219
|
+
type: 'string',
|
|
220
|
+
required: false,
|
|
221
|
+
description: 'MCP server URL',
|
|
222
|
+
default: DEFAULT_SERVER_URL,
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: 'outputDir',
|
|
226
|
+
type: 'string',
|
|
227
|
+
required: false,
|
|
228
|
+
description: 'Output directory for configuration files',
|
|
229
|
+
default: '.',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: 'overwrite',
|
|
233
|
+
type: 'boolean',
|
|
234
|
+
required: false,
|
|
235
|
+
description: 'Overwrite existing files',
|
|
236
|
+
default: false,
|
|
237
|
+
},
|
|
238
|
+
],
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: 'list_ai_tools',
|
|
242
|
+
description: 'List all supported AI tools for configuration generation',
|
|
243
|
+
parameters: [],
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
name: 'get_ai_tool_info',
|
|
247
|
+
description: 'Get detailed information about a specific AI tool',
|
|
248
|
+
parameters: [
|
|
249
|
+
{
|
|
250
|
+
name: 'tool',
|
|
251
|
+
type: 'string',
|
|
252
|
+
required: true,
|
|
253
|
+
description: 'AI tool name (cursor, continue, copilot, etc.)',
|
|
254
|
+
},
|
|
255
|
+
],
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: 'validate_ai_config',
|
|
259
|
+
description: 'Validate a generated AI tool configuration',
|
|
260
|
+
parameters: [
|
|
261
|
+
{
|
|
262
|
+
name: 'tool',
|
|
263
|
+
type: 'string',
|
|
264
|
+
required: true,
|
|
265
|
+
description: 'AI tool name',
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
name: 'config',
|
|
269
|
+
type: 'object',
|
|
270
|
+
required: true,
|
|
271
|
+
description: 'Configuration object to validate',
|
|
272
|
+
},
|
|
273
|
+
],
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: 'bulk_cleanup',
|
|
277
|
+
description: 'Remove index entries for deleted files',
|
|
278
|
+
parameters: [],
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: 'deep_sync',
|
|
282
|
+
description: 'Deep synchronize all indexed files to update signatures and remove stale entries',
|
|
283
|
+
parameters: [],
|
|
284
|
+
},
|
|
82
285
|
];
|
|
83
286
|
async function startMcpServer() {
|
|
287
|
+
console.error(chalk.blue('[INFO]'), 'Starting Code Auditor MCP Server...');
|
|
84
288
|
const server = new Server({
|
|
85
289
|
name: 'code-auditor',
|
|
86
290
|
version: '0.1.0',
|
|
@@ -89,8 +293,11 @@ async function startMcpServer() {
|
|
|
89
293
|
tools: {},
|
|
90
294
|
},
|
|
91
295
|
});
|
|
296
|
+
console.error(chalk.blue('[INFO]'), 'Server instance created');
|
|
92
297
|
// Handle tool listing
|
|
298
|
+
console.error(chalk.blue('[INFO]'), 'Setting up request handlers...');
|
|
93
299
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
300
|
+
console.error(chalk.blue('[DEBUG]'), 'Handling ListTools request');
|
|
94
301
|
return {
|
|
95
302
|
tools: tools.map(tool => ({
|
|
96
303
|
name: tool.name,
|
|
@@ -111,9 +318,11 @@ async function startMcpServer() {
|
|
|
111
318
|
})),
|
|
112
319
|
};
|
|
113
320
|
});
|
|
321
|
+
console.error(chalk.blue('[INFO]'), `Registered ${tools.length} tools`);
|
|
114
322
|
// Handle tool execution
|
|
115
323
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
116
324
|
const { name, arguments: args } = request.params;
|
|
325
|
+
console.error(chalk.blue('[DEBUG]'), `Handling CallTool request for: ${name}`);
|
|
117
326
|
try {
|
|
118
327
|
let result;
|
|
119
328
|
switch (name) {
|
|
@@ -258,6 +467,263 @@ async function startMcpServer() {
|
|
|
258
467
|
};
|
|
259
468
|
break;
|
|
260
469
|
}
|
|
470
|
+
case 'register_functions': {
|
|
471
|
+
const functions = args.functions;
|
|
472
|
+
const overwrite = args.overwrite || false;
|
|
473
|
+
if (!Array.isArray(functions)) {
|
|
474
|
+
throw new Error('functions must be an array');
|
|
475
|
+
}
|
|
476
|
+
result = await registerFunctions(functions, { overwrite });
|
|
477
|
+
break;
|
|
478
|
+
}
|
|
479
|
+
case 'search_functions': {
|
|
480
|
+
const query = args.query;
|
|
481
|
+
const filters = args.filters;
|
|
482
|
+
const limit = args.limit || 50;
|
|
483
|
+
const offset = args.offset || 0;
|
|
484
|
+
// Allow empty query to return all results
|
|
485
|
+
if (query !== undefined && typeof query !== 'string') {
|
|
486
|
+
throw new Error('query must be a string');
|
|
487
|
+
}
|
|
488
|
+
result = await searchFunctions({
|
|
489
|
+
query,
|
|
490
|
+
filters,
|
|
491
|
+
limit,
|
|
492
|
+
offset
|
|
493
|
+
});
|
|
494
|
+
break;
|
|
495
|
+
}
|
|
496
|
+
case 'index_functions': {
|
|
497
|
+
const targetPath = path.resolve(args.path);
|
|
498
|
+
const recursive = args.recursive !== false;
|
|
499
|
+
const fileTypes = args.fileTypes || ['.ts', '.tsx', '.js', '.jsx'];
|
|
500
|
+
const stats = await fs.stat(targetPath);
|
|
501
|
+
if (stats.isFile()) {
|
|
502
|
+
// For single files, use sync to handle additions/updates/removals
|
|
503
|
+
const functions = await scanFunctionsInFile(targetPath);
|
|
504
|
+
const syncResult = await syncFileIndex(targetPath, functions);
|
|
505
|
+
result = {
|
|
506
|
+
success: true,
|
|
507
|
+
registered: syncResult.added + syncResult.updated,
|
|
508
|
+
failed: 0,
|
|
509
|
+
path: targetPath,
|
|
510
|
+
totalScanned: functions.length,
|
|
511
|
+
syncStats: syncResult
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
// For directories, use regular registration (could be improved later)
|
|
516
|
+
const functions = await scanFunctionsInDirectory(targetPath, { recursive, fileTypes });
|
|
517
|
+
const registerResult = await registerFunctions(functions);
|
|
518
|
+
result = {
|
|
519
|
+
...registerResult,
|
|
520
|
+
path: targetPath,
|
|
521
|
+
totalScanned: functions.length,
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
break;
|
|
525
|
+
}
|
|
526
|
+
case 'find_definition': {
|
|
527
|
+
const name = args.name;
|
|
528
|
+
const filePath = args.filePath;
|
|
529
|
+
if (!name || typeof name !== 'string') {
|
|
530
|
+
throw new Error('name must be a non-empty string');
|
|
531
|
+
}
|
|
532
|
+
const definition = await findDefinition(name, filePath);
|
|
533
|
+
result = definition || { error: 'Function not found' };
|
|
534
|
+
break;
|
|
535
|
+
}
|
|
536
|
+
case 'get_index_stats': {
|
|
537
|
+
result = await getIndexStats();
|
|
538
|
+
break;
|
|
539
|
+
}
|
|
540
|
+
case 'clear_index': {
|
|
541
|
+
const confirm = args.confirm;
|
|
542
|
+
if (!confirm) {
|
|
543
|
+
throw new Error('Please set confirm: true to clear the index');
|
|
544
|
+
}
|
|
545
|
+
await clearIndex();
|
|
546
|
+
result = { message: 'Index cleared successfully' };
|
|
547
|
+
break;
|
|
548
|
+
}
|
|
549
|
+
case 'generate_ai_configs': {
|
|
550
|
+
const tools = args.tools;
|
|
551
|
+
const serverUrl = args.serverUrl || DEFAULT_SERVER_URL;
|
|
552
|
+
const outputDir = args.outputDir || '.';
|
|
553
|
+
const overwrite = args.overwrite || false;
|
|
554
|
+
if (!Array.isArray(tools) || tools.length === 0) {
|
|
555
|
+
throw new Error('tools parameter must be a non-empty array');
|
|
556
|
+
}
|
|
557
|
+
const factory = new ConfigGeneratorFactory(serverUrl);
|
|
558
|
+
const generatedFiles = [];
|
|
559
|
+
const errors = [];
|
|
560
|
+
for (const tool of tools) {
|
|
561
|
+
try {
|
|
562
|
+
const generator = factory.createGenerator(tool);
|
|
563
|
+
if (!generator) {
|
|
564
|
+
errors.push(`Unknown tool: ${tool}`);
|
|
565
|
+
continue;
|
|
566
|
+
}
|
|
567
|
+
const config = generator.generateConfig();
|
|
568
|
+
const outputPath = path.resolve(outputDir, config.filename);
|
|
569
|
+
// Check if file exists
|
|
570
|
+
let fileExists = false;
|
|
571
|
+
try {
|
|
572
|
+
await fs.access(outputPath);
|
|
573
|
+
fileExists = true;
|
|
574
|
+
}
|
|
575
|
+
catch {
|
|
576
|
+
// File doesn't exist
|
|
577
|
+
}
|
|
578
|
+
if (fileExists && !overwrite) {
|
|
579
|
+
errors.push(`File already exists: ${config.filename} (use overwrite: true to replace)`);
|
|
580
|
+
continue;
|
|
581
|
+
}
|
|
582
|
+
// Ensure directory exists
|
|
583
|
+
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
584
|
+
// Write main config file
|
|
585
|
+
await fs.writeFile(outputPath, config.content);
|
|
586
|
+
generatedFiles.push(config.filename);
|
|
587
|
+
// Write additional files if any
|
|
588
|
+
if (config.additionalFiles) {
|
|
589
|
+
for (const additionalFile of config.additionalFiles) {
|
|
590
|
+
const additionalPath = path.resolve(outputDir, additionalFile.filename);
|
|
591
|
+
await fs.mkdir(path.dirname(additionalPath), { recursive: true });
|
|
592
|
+
await fs.writeFile(additionalPath, additionalFile.content);
|
|
593
|
+
generatedFiles.push(additionalFile.filename);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
catch (error) {
|
|
598
|
+
errors.push(`Failed to generate config for ${tool}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
result = {
|
|
602
|
+
success: errors.length === 0,
|
|
603
|
+
generatedFiles,
|
|
604
|
+
errors: errors.length > 0 ? errors : undefined,
|
|
605
|
+
totalRequested: tools.length,
|
|
606
|
+
totalGenerated: generatedFiles.length
|
|
607
|
+
};
|
|
608
|
+
break;
|
|
609
|
+
}
|
|
610
|
+
case 'list_ai_tools': {
|
|
611
|
+
const factory = new ConfigGeneratorFactory();
|
|
612
|
+
const toolInfo = factory.getToolInfo();
|
|
613
|
+
result = {
|
|
614
|
+
tools: toolInfo,
|
|
615
|
+
totalCount: toolInfo.length,
|
|
616
|
+
categories: {
|
|
617
|
+
native_mcp: toolInfo.filter(t => !t.requiresAuth).map(t => t.name),
|
|
618
|
+
api_based: toolInfo.filter(t => t.requiresAuth).map(t => t.name)
|
|
619
|
+
}
|
|
620
|
+
};
|
|
621
|
+
break;
|
|
622
|
+
}
|
|
623
|
+
case 'get_ai_tool_info': {
|
|
624
|
+
const toolName = args.tool;
|
|
625
|
+
if (!toolName) {
|
|
626
|
+
throw new Error('tool parameter is required');
|
|
627
|
+
}
|
|
628
|
+
const factory = new ConfigGeneratorFactory();
|
|
629
|
+
const generator = factory.createGenerator(toolName);
|
|
630
|
+
if (!generator) {
|
|
631
|
+
throw new Error(`Unknown tool: ${toolName}`);
|
|
632
|
+
}
|
|
633
|
+
const config = generator.generateConfig();
|
|
634
|
+
result = {
|
|
635
|
+
name: toolName,
|
|
636
|
+
displayName: generator.getToolName(),
|
|
637
|
+
requiresAuth: generator.requiresAuth(),
|
|
638
|
+
defaultApiKey: generator.getDefaultApiKey(),
|
|
639
|
+
configFilename: generator.getFilename(),
|
|
640
|
+
instructions: generator.getInstructions(),
|
|
641
|
+
sampleConfig: JSON.parse(config.content)
|
|
642
|
+
};
|
|
643
|
+
break;
|
|
644
|
+
}
|
|
645
|
+
case 'validate_ai_config': {
|
|
646
|
+
const toolName = args.tool;
|
|
647
|
+
const config = args.config;
|
|
648
|
+
if (!toolName) {
|
|
649
|
+
throw new Error('tool parameter is required');
|
|
650
|
+
}
|
|
651
|
+
if (!config) {
|
|
652
|
+
throw new Error('config parameter is required');
|
|
653
|
+
}
|
|
654
|
+
const factory = new ConfigGeneratorFactory();
|
|
655
|
+
const generator = factory.createGenerator(toolName);
|
|
656
|
+
if (!generator) {
|
|
657
|
+
throw new Error(`Unknown tool: ${toolName}`);
|
|
658
|
+
}
|
|
659
|
+
// Generate reference config to compare structure
|
|
660
|
+
const referenceConfig = generator.generateConfig();
|
|
661
|
+
const reference = JSON.parse(referenceConfig.content);
|
|
662
|
+
// Basic validation - check if main structure matches
|
|
663
|
+
const errors = [];
|
|
664
|
+
const validateObject = (ref, actual, path = '') => {
|
|
665
|
+
for (const key in ref) {
|
|
666
|
+
const currentPath = path ? `${path}.${key}` : key;
|
|
667
|
+
if (!(key in actual)) {
|
|
668
|
+
errors.push(`Missing required field: ${currentPath}`);
|
|
669
|
+
}
|
|
670
|
+
else if (typeof ref[key] === 'object' && ref[key] !== null && !Array.isArray(ref[key])) {
|
|
671
|
+
if (typeof actual[key] === 'object' && actual[key] !== null) {
|
|
672
|
+
validateObject(ref[key], actual[key], currentPath);
|
|
673
|
+
}
|
|
674
|
+
else {
|
|
675
|
+
errors.push(`Field ${currentPath} should be an object`);
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
};
|
|
680
|
+
validateObject(reference, config);
|
|
681
|
+
result = {
|
|
682
|
+
valid: errors.length === 0,
|
|
683
|
+
tool: toolName,
|
|
684
|
+
errors: errors.length > 0 ? errors : undefined,
|
|
685
|
+
warnings: [] // Could add warnings for extra fields, deprecated settings, etc.
|
|
686
|
+
};
|
|
687
|
+
break;
|
|
688
|
+
}
|
|
689
|
+
case 'bulk_cleanup': {
|
|
690
|
+
const db = CodeIndexDB.getInstance();
|
|
691
|
+
await db.initialize();
|
|
692
|
+
const cleanupResult = await db.bulkCleanup();
|
|
693
|
+
result = {
|
|
694
|
+
success: true,
|
|
695
|
+
scannedFiles: cleanupResult.scannedCount,
|
|
696
|
+
removedEntries: cleanupResult.removedCount,
|
|
697
|
+
removedFiles: cleanupResult.removedFiles,
|
|
698
|
+
errors: cleanupResult.errors,
|
|
699
|
+
message: `Cleaned up ${cleanupResult.removedCount} entries from ${cleanupResult.removedFiles.length} deleted files`
|
|
700
|
+
};
|
|
701
|
+
break;
|
|
702
|
+
}
|
|
703
|
+
case 'deep_sync': {
|
|
704
|
+
const db = CodeIndexDB.getInstance();
|
|
705
|
+
await db.initialize();
|
|
706
|
+
// Progress tracking
|
|
707
|
+
const progressUpdates = [];
|
|
708
|
+
const syncResult = await db.deepSync((progress) => {
|
|
709
|
+
progressUpdates.push({
|
|
710
|
+
current: progress.current,
|
|
711
|
+
total: progress.total,
|
|
712
|
+
file: progress.file,
|
|
713
|
+
percentage: Math.round((progress.current / progress.total) * 100)
|
|
714
|
+
});
|
|
715
|
+
});
|
|
716
|
+
result = {
|
|
717
|
+
success: true,
|
|
718
|
+
syncedFiles: syncResult.syncedFiles,
|
|
719
|
+
addedFunctions: syncResult.addedFunctions,
|
|
720
|
+
updatedFunctions: syncResult.updatedFunctions,
|
|
721
|
+
removedFunctions: syncResult.removedFunctions,
|
|
722
|
+
errors: syncResult.errors,
|
|
723
|
+
message: `Synced ${syncResult.syncedFiles} files: ${syncResult.addedFunctions} added, ${syncResult.updatedFunctions} updated, ${syncResult.removedFunctions} removed`
|
|
724
|
+
};
|
|
725
|
+
break;
|
|
726
|
+
}
|
|
261
727
|
default:
|
|
262
728
|
throw new Error(`Unknown tool: ${name}`);
|
|
263
729
|
}
|
|
@@ -285,7 +751,9 @@ async function startMcpServer() {
|
|
|
285
751
|
};
|
|
286
752
|
}
|
|
287
753
|
});
|
|
754
|
+
console.error(chalk.blue('[INFO]'), 'Request handlers configured');
|
|
288
755
|
const transport = new StdioServerTransport();
|
|
756
|
+
console.error(chalk.blue('[INFO]'), 'Creating stdio transport...');
|
|
289
757
|
await server.connect(transport);
|
|
290
758
|
console.error(chalk.green('✓ Code Auditor MCP Server started'));
|
|
291
759
|
console.error(chalk.gray('Listening on stdio...'));
|
|
@@ -332,9 +800,22 @@ function getHealthRecommendation(score, result) {
|
|
|
332
800
|
}
|
|
333
801
|
return 'Code health needs attention - run detailed audit';
|
|
334
802
|
}
|
|
803
|
+
// Error handlers
|
|
804
|
+
process.on('uncaughtException', (error) => {
|
|
805
|
+
console.error(chalk.red('[ERROR]'), 'Uncaught exception:', error);
|
|
806
|
+
console.error(chalk.red('[ERROR]'), 'Stack:', error.stack);
|
|
807
|
+
process.exit(1);
|
|
808
|
+
});
|
|
809
|
+
process.on('unhandledRejection', (reason, promise) => {
|
|
810
|
+
console.error(chalk.red('[ERROR]'), 'Unhandled rejection at:', promise);
|
|
811
|
+
console.error(chalk.red('[ERROR]'), 'Reason:', reason);
|
|
812
|
+
process.exit(1);
|
|
813
|
+
});
|
|
335
814
|
// Start server
|
|
815
|
+
console.error(chalk.blue('[INFO]'), 'Initializing server...');
|
|
336
816
|
startMcpServer().catch(error => {
|
|
337
|
-
console.error(chalk.red('Failed to start MCP server:'
|
|
817
|
+
console.error(chalk.red('[ERROR]'), 'Failed to start MCP server:', error);
|
|
818
|
+
console.error(chalk.red('[ERROR]'), 'Stack:', error.stack);
|
|
338
819
|
process.exit(1);
|
|
339
820
|
});
|
|
340
821
|
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAiB1B,MAAM,KAAK,GAAW;IACpB;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,0DAA0D;QACvE,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,6DAA6D;gBAC1E,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;aACvB;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,yEAAyE;gBACtF,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;aACtC;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,kCAAkC;gBAC/C,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;aACtC;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,iDAAiD;QAC9D,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,0BAA0B;aACxC;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,wCAAwC;gBACrD,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;aACtC;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,mDAAmD;QAChE,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,6BAA6B;gBAC1C,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;aACvB;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,8CAA8C;gBAC3D,OAAO,EAAE,EAAE;aACZ;SACF;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,0DAA0D;QACvE,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEF,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;wBAChD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;4BAChB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,WAAW,EAAE,KAAK,CAAC,WAAW;4BAC9B,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;4BAC9D,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;yBACxC,CAAC;wBACF,OAAO,GAAG,CAAC;oBACb,CAAC,EAAE,EAAyB,CAAC;oBAC7B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACnE;aACF,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,IAAI,MAAW,CAAC;YAEhB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvE,MAAM,OAAO,GAAuB;wBAClC,WAAW,EAAE,SAAS;wBACtB,gBAAgB,EAAG,IAAI,CAAC,gBAA6B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;wBACrF,WAAW,EAAE,CAAE,IAAI,CAAC,WAAsB,IAAI,SAAS,CAAa;wBACpE,OAAO,EAAE,KAAK;qBACf,CAAC;oBAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAC1C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;oBAEvC,iBAAiB;oBACjB,MAAM,GAAG;wBACP,OAAO,EAAE;4BACP,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe;4BACpD,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc;4BAClD,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ;4BACtC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW;4BAC5C,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa;4BACjD,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa;4BACjD,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC;yBAC/C;wBACD,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,qBAAqB;wBAC9E,eAAe,EAAE,WAAW,CAAC,eAAe;qBAC7C,CAAC;oBACF,MAAM;gBACR,CAAC;gBAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAkB,CAAC,CAAC;oBAC3D,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB;oBAEnD,MAAM,OAAO,GAAuB;wBAClC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;wBACvC,gBAAgB,EAAG,IAAI,CAAC,SAAsB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;wBAC9E,YAAY,EAAE,CAAC,YAAY,CAAC;wBAC5B,OAAO,EAAE,KAAK;qBACf,CAAC;oBAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAC1C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;oBAEvC,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;oBAC1F,MAAM,GAAG;wBACP,IAAI,EAAE,YAAY;wBAClB,UAAU,EAAE,cAAc;wBAC1B,OAAO,EAAE;4BACP,KAAK,EAAE,cAAc,CAAC,MAAM;4BAC5B,UAAU,EAAE,cAAc;iCACvB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gCACjB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gCAC7C,OAAO,GAAG,CAAC;4BACb,CAAC,EAAE,EAA4B,CAAC;yBACnC;qBACF,CAAC;oBACF,MAAM;gBACR,CAAC;gBAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvE,MAAM,SAAS,GAAI,IAAI,CAAC,SAAoB,IAAI,EAAE,CAAC;oBAEnD,MAAM,MAAM,GAAG,iBAAiB,CAAC;wBAC/B,WAAW,EAAE,SAAS;wBACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;wBAC9C,WAAW,EAAE,SAAS;wBACtB,OAAO,EAAE,KAAK;qBACf,CAAC,CAAC;oBAEH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;oBACvC,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;oBAEtD,MAAM,GAAG;wBACP,WAAW;wBACX,SAAS;wBACT,MAAM,EAAE,WAAW,IAAI,SAAS;wBAChC,MAAM,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;wBAChE,OAAO,EAAE;4BACP,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa;4BACjD,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe;4BACpD,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc;4BACtD,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ;yBAChD;wBACD,cAAc,EAAE,uBAAuB,CAAC,WAAW,EAAE,WAAW,CAAC;qBAClE,CAAC;oBACF,MAAM;gBACR,CAAC;gBAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;oBAC5B,MAAM,GAAG;wBACP,SAAS,EAAE;4BACT;gCACE,EAAE,EAAE,OAAO;gCACX,IAAI,EAAE,gBAAgB;gCACtB,WAAW,EAAE,sCAAsC;gCACnD,MAAM,EAAE;oCACN,kCAAkC;oCAClC,wBAAwB;oCACxB,4BAA4B;oCAC5B,gCAAgC;oCAChC,iCAAiC;iCAClC;6BACF;4BACD;gCACE,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,cAAc;gCACpB,WAAW,EAAE,6BAA6B;gCAC1C,MAAM,EAAE;oCACN,uBAAuB;oCACvB,uBAAuB;oCACvB,mBAAmB;oCACnB,0BAA0B;iCAC3B;6BACF;4BACD;gCACE,EAAE,EAAE,UAAU;gCACd,IAAI,EAAE,mBAAmB;gCACzB,WAAW,EAAE,4BAA4B;gCACzC,MAAM,EAAE;oCACN,wBAAwB;oCACxB,sBAAsB;oCACtB,qBAAqB;oCACrB,oBAAoB;iCACrB;6BACF;4BACD;gCACE,EAAE,EAAE,WAAW;gCACf,IAAI,EAAE,oBAAoB;gCAC1B,WAAW,EAAE,wBAAwB;gCACrC,MAAM,EAAE;oCACN,0BAA0B;oCAC1B,wBAAwB;oCACxB,cAAc;oCACd,oBAAoB;iCACrB;6BACF;4BACD;gCACE,EAAE,EAAE,aAAa;gCACjB,IAAI,EAAE,sBAAsB;gCAC5B,WAAW,EAAE,2BAA2B;gCACxC,MAAM,EAAE;oCACN,aAAa;oCACb,sBAAsB;oCACtB,wBAAwB;oCACxB,oBAAoB;iCACrB;6BACF;yBACF;qBACF,CAAC;oBACF,MAAM;gBACR,CAAC;gBAED;oBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;4BAC/D,IAAI,EAAE,IAAI;yBACX,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACpF,KAAK,MAAM,SAAS,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;YAClD,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,SAAS;gBACZ,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAmB;IAC/C,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IAExC,KAAK,IAAI,QAAQ,GAAG,EAAE,CAAC;IACvB,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC;IAErB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAmB;IAClD,MAAM,eAAe,GAAG,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACtC,eAAe,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,qCAAqC;YAC5C,WAAW,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,8CAA8C;SAC5F,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAElD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,MAAmB;IACjE,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,wBAAwB,CAAC;IACjD,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,4CAA4C,CAAC;IACrE,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,4BAA4B,CAAC;IAC1E,CAAC;IACD,OAAO,kDAAkD,CAAC;AAC5D,CAAC;AAED,eAAe;AACf,cAAc,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ParsedQuery } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* QueryParser - Parses search queries into structured format with tokenization and synonym expansion
|
|
4
|
+
*
|
|
5
|
+
* Supports:
|
|
6
|
+
* - Multi-word queries with intelligent tokenization
|
|
7
|
+
* - Exact phrase matching with quotes
|
|
8
|
+
* - Excluded terms with minus operator
|
|
9
|
+
* - Special operators (type:, param:, return:, etc.)
|
|
10
|
+
* - Synonym expansion for common programming terms
|
|
11
|
+
* - Fuzzy search and stemming flags
|
|
12
|
+
*/
|
|
13
|
+
export declare class QueryParser {
|
|
14
|
+
private static readonly SYNONYMS;
|
|
15
|
+
private static readonly OPERATORS;
|
|
16
|
+
/**
|
|
17
|
+
* Parse a search query string into a structured ParsedQuery object
|
|
18
|
+
* @param query The raw search query string
|
|
19
|
+
* @returns ParsedQuery object with extracted terms, filters, and options
|
|
20
|
+
*/
|
|
21
|
+
parse(query: string): ParsedQuery;
|
|
22
|
+
/**
|
|
23
|
+
* Extract quoted phrases from the query
|
|
24
|
+
* @param query The query string
|
|
25
|
+
* @returns Array of phrase objects with original and cleaned value
|
|
26
|
+
*/
|
|
27
|
+
private extractPhrases;
|
|
28
|
+
/**
|
|
29
|
+
* Extract operators and their values from the query
|
|
30
|
+
* @param query The query string
|
|
31
|
+
* @returns Object with operators map and cleaned query
|
|
32
|
+
*/
|
|
33
|
+
private extractOperators;
|
|
34
|
+
/**
|
|
35
|
+
* Apply operator filters to the parsed query
|
|
36
|
+
* @param operators Map of operators and values
|
|
37
|
+
* @param parsedQuery The parsed query object to update
|
|
38
|
+
*/
|
|
39
|
+
private applyOperatorFilters;
|
|
40
|
+
/**
|
|
41
|
+
* Tokenize a string into individual words
|
|
42
|
+
* @param text The text to tokenize
|
|
43
|
+
* @returns Array of tokens
|
|
44
|
+
*/
|
|
45
|
+
private tokenize;
|
|
46
|
+
/**
|
|
47
|
+
* Get synonyms for a given term
|
|
48
|
+
* @param term The term to find synonyms for
|
|
49
|
+
* @returns Array of synonyms (not including the original term)
|
|
50
|
+
*/
|
|
51
|
+
getSynonyms(term: string): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Expand a query with synonyms (utility method)
|
|
54
|
+
* @param query The original query
|
|
55
|
+
* @returns Expanded query with synonyms
|
|
56
|
+
*/
|
|
57
|
+
expandQuery(query: string): string;
|
|
58
|
+
}
|
|
59
|
+
export declare const queryParser: QueryParser;
|
|
60
|
+
//# sourceMappingURL=QueryParser.d.ts.map
|