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.
Files changed (114) hide show
  1. package/README.md +41 -0
  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 +60 -49
  85. package/dist/mcp-standalone.js.map +1 -1
  86. package/dist/mcp.js +483 -2
  87. package/dist/mcp.js.map +1 -1
  88. package/dist/search/QueryParser.d.ts +60 -0
  89. package/dist/search/QueryParser.d.ts.map +1 -0
  90. package/dist/search/QueryParser.js +330 -0
  91. package/dist/search/QueryParser.js.map +1 -0
  92. package/dist/search/index.d.ts +7 -0
  93. package/dist/search/index.d.ts.map +1 -0
  94. package/dist/search/index.js +6 -0
  95. package/dist/search/index.js.map +1 -0
  96. package/dist/test-multi-strategy-search.d.ts +3 -0
  97. package/dist/test-multi-strategy-search.d.ts.map +1 -0
  98. package/dist/test-multi-strategy-search.js +170 -0
  99. package/dist/test-multi-strategy-search.js.map +1 -0
  100. package/dist/types.d.ts +136 -0
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/ui/InteractivePrompts.d.ts +37 -0
  103. package/dist/ui/InteractivePrompts.d.ts.map +1 -0
  104. package/dist/ui/InteractivePrompts.js +147 -0
  105. package/dist/ui/InteractivePrompts.js.map +1 -0
  106. package/dist/ui/index.d.ts +2 -0
  107. package/dist/ui/index.d.ts.map +1 -0
  108. package/dist/ui/index.js +3 -0
  109. package/dist/ui/index.js.map +1 -0
  110. package/dist/utils/jsDocParser.d.ts +84 -0
  111. package/dist/utils/jsDocParser.d.ts.map +1 -0
  112. package/dist/utils/jsDocParser.js +366 -0
  113. package/dist/utils/jsDocParser.js.map +1 -0
  114. package/package.json +23 -3
package/README.md CHANGED
@@ -9,6 +9,10 @@ A comprehensive TypeScript/JavaScript code quality audit tool that analyzes your
9
9
  - **Security Pattern Analysis** - Verify authentication, authorization, and rate limiting implementations
10
10
  - **Component Architecture Review** - Analyze component structure, complexity, and best practices
11
11
  - **Data Access Patterns** - Check for SQL injection risks, performance issues, and security patterns
12
+ - **Code Function Indexing** - Index and search functions across your codebase with intelligent tokenization
13
+ - **AI Tool Configuration** - Auto-generate configurations for 10+ AI coding assistants
14
+ - **Advanced Search** - Natural language search with synonym expansion and camelCase support
15
+ - **Index Maintenance** - Bulk cleanup and deep synchronization tools for accurate indexing
12
16
  - **Multiple Output Formats** - Generate HTML, JSON, or CSV reports
13
17
  - **Highly Configurable** - Customize thresholds, patterns, and analysis rules
14
18
  - **Framework Support** - Built-in support for React, Vue, Angular, Svelte, and Node.js
@@ -357,21 +361,58 @@ If you prefer to configure Claude Desktop manually:
357
361
 
358
362
  ### Available MCP Tools
359
363
 
364
+ #### Code Analysis Tools
360
365
  - **audit_run** - Run a comprehensive code audit
361
366
  - **audit_analyze_file** - Analyze a specific file for issues
362
367
  - **audit_check_health** - Get a quick health score for your codebase
363
368
  - **audit_list_analyzers** - List all available analyzers and their capabilities
364
369
 
370
+ #### Code Index Tools
371
+ - **index_functions** - Index functions from TypeScript/JavaScript files
372
+ - **search_functions** - Search indexed functions with natural language queries
373
+ - **find_definition** - Find the exact definition of a specific function
374
+ - **register_functions** - Manually register functions with metadata
375
+ - **get_index_stats** - Get statistics about the code index
376
+ - **clear_index** - Clear all indexed functions
377
+
378
+ #### AI Configuration Tools
379
+ - **generate_ai_configs** - Generate configs for AI coding assistants (Cursor, Continue, Copilot, etc.)
380
+ - **list_ai_tools** - List all supported AI tools
381
+ - **get_ai_tool_info** - Get detailed info about a specific AI tool
382
+ - **validate_ai_config** - Validate an AI tool configuration
383
+
384
+ #### Maintenance Tools
385
+ - **bulk_cleanup** - Remove index entries for deleted files
386
+ - **deep_sync** - Deep synchronize all indexed files
387
+
365
388
  ### Usage Examples with Claude
366
389
 
367
390
  ```
391
+ # Code Analysis
368
392
  "Run a code audit on my project and show me the critical issues"
369
393
  "Check the health score of the src directory"
370
394
  "Analyze my code for SOLID principle violations"
371
395
  "Find security vulnerabilities in my authentication code"
372
396
  "Show me all code duplication in the components folder"
397
+
398
+ # Code Search & Discovery
399
+ "Search for functions that validate email addresses"
400
+ "Find all user authentication functions"
401
+ "Show me any existing data table components"
402
+ "Search for functions that send notifications"
403
+
404
+ # AI Tool Configuration
405
+ "Generate AI configurations for Cursor and Claude"
406
+ "List all supported AI coding tools"
407
+ "Set up my AI tools to use the code index"
408
+
409
+ # Maintenance
410
+ "Clean up stale entries in the code index"
411
+ "Sync all indexed files to update function signatures"
373
412
  ```
374
413
 
414
+ See [TOOLS-DOCUMENTATION.md](TOOLS-DOCUMENTATION.md) for comprehensive documentation on all MCP tools.
415
+
375
416
  ## Contributing
376
417
 
377
418
  Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details.
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ // REST API adapter and related modules
2
+ // Exports will be added as modules are implemented
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,mDAAmD"}
package/dist/cli.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Code Auditor CLI
3
+ * Code Auditor CLI - Enhanced with AI Tool Integration
4
4
  */
5
5
  export {};
6
6
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.js CHANGED
@@ -1,28 +1,43 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Code Auditor CLI
3
+ * Code Auditor CLI - Enhanced with AI Tool Integration
4
4
  */
5
+ import { Command } from 'commander';
6
+ import chalk from 'chalk';
5
7
  import { createAuditRunner } from './auditRunner.js';
6
- import { parseArgs } from 'util';
7
- async function main() {
8
- console.log('🔍 Code Quality Audit Tool');
9
- console.log('══════════════════════════════════════════════════');
10
- const { values } = parseArgs({
11
- options: {
12
- help: { type: 'boolean', short: 'h' }
13
- }
14
- });
15
- if (values.help) {
16
- console.log(`
17
- Usage: code-audit [options]
18
-
19
- Options:
20
- -h, --help Show help
21
- `);
22
- process.exit(0);
23
- }
8
+ import { readFileSync } from 'fs';
9
+ import { promises as fs } from 'fs';
10
+ import { fileURLToPath } from 'url';
11
+ import { dirname, join, resolve } from 'path';
12
+ import { ConfigGeneratorFactory } from './generators/ConfigGeneratorFactory.js';
13
+ import { InteractivePrompts } from './ui/InteractivePrompts.js';
14
+ import { DEFAULT_SERVER_URL, DEFAULT_PORT } from './constants.js';
15
+ // Get package.json for version info
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = dirname(__filename);
18
+ const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
19
+ const program = new Command();
20
+ // Configure the main program
21
+ program
22
+ .name('code-auditor')
23
+ .description('TypeScript/JavaScript code quality auditor with AI tool integration')
24
+ .version(packageJson.version);
25
+ // Legacy audit command (default behavior)
26
+ program
27
+ .command('audit', { isDefault: true })
28
+ .description('Run code quality audit (default command)')
29
+ .option('-p, --path <path>', 'Path to audit', process.cwd())
30
+ .option('-c, --config <config>', 'Configuration name')
31
+ .option('-o, --output <dir>', 'Output directory for reports')
32
+ .action(async (options) => {
33
+ console.log(chalk.blue('🔍 Code Quality Audit Tool'));
34
+ console.log(chalk.gray('══════════════════════════════════════════════════'));
24
35
  try {
25
- const runner = createAuditRunner();
36
+ const runner = createAuditRunner({
37
+ projectRoot: options.path,
38
+ configName: options.config,
39
+ outputDirectory: options.output
40
+ });
26
41
  const result = await runner.run();
27
42
  console.log(`\nFound ${result.summary.totalViolations} violations`);
28
43
  console.log(`Critical: ${result.summary.criticalIssues}`);
@@ -30,9 +45,201 @@ Options:
30
45
  console.log(`Suggestions: ${result.summary.suggestions}`);
31
46
  }
32
47
  catch (error) {
33
- console.error('Error:', error);
48
+ console.error(chalk.red('Error:'), error);
49
+ process.exit(1);
50
+ }
51
+ });
52
+ // Generate configuration command
53
+ program
54
+ .command('generate-config')
55
+ .alias('gen')
56
+ .description('Generate configuration for AI coding assistants')
57
+ .option('-t, --tool <tool>', 'Specific tool (cursor, continue, copilot, awsq, codeium, claude, all)')
58
+ .option('-o, --output <dir>', 'Output directory', '.')
59
+ .option('-s, --server-url <url>', 'MCP server URL', DEFAULT_SERVER_URL)
60
+ .option('-i, --interactive', 'Interactive mode for tool selection')
61
+ .option('-f, --force', 'Force overwrite existing files without confirmation')
62
+ .option('-y, --yes', 'Skip all confirmation prompts (same as --force)')
63
+ .action(async (options) => {
64
+ console.log(chalk.blue('🛠️ AI Tool Configuration Generator'));
65
+ console.log(chalk.gray('════════════════════════════════════════════════════'));
66
+ try {
67
+ await generateConfigurations(options);
68
+ }
69
+ catch (error) {
70
+ console.error(chalk.red('Error:'), error);
34
71
  process.exit(1);
35
72
  }
73
+ });
74
+ // Start server command (placeholder - will be implemented later)
75
+ program
76
+ .command('start')
77
+ .description('Start the MCP server')
78
+ .option('-p, --port <port>', 'Server port', String(DEFAULT_PORT))
79
+ .option('-m, --mcp-mode', 'Start in MCP stdio mode')
80
+ .option('-r, --rest-api', 'Enable REST API endpoints')
81
+ .option('-i, --index <path>', 'Path to index on startup')
82
+ .action(async (options) => {
83
+ console.log(chalk.yellow('Server start will be implemented in a future task'));
84
+ console.log('Options:', options);
85
+ // TODO: Implement server start
86
+ });
87
+ // Index command (placeholder - will be implemented later)
88
+ program
89
+ .command('index <path>')
90
+ .description('Index a directory')
91
+ .option('-p, --pattern <pattern>', 'File pattern', '**/*.{js,ts,jsx,tsx}')
92
+ .action(async (path, options) => {
93
+ console.log(chalk.yellow('Index command will be implemented in a future task'));
94
+ console.log('Path:', path, 'Options:', options);
95
+ // TODO: Implement indexing
96
+ });
97
+ // Search command (placeholder - will be implemented later)
98
+ program
99
+ .command('search <query>')
100
+ .description('Search the code index')
101
+ .option('-f, --fuzzy', 'Use fuzzy search', true)
102
+ .option('-t, --type <type>', 'Symbol type filter')
103
+ .option('-l, --limit <limit>', 'Result limit', '20')
104
+ .action(async (query, options) => {
105
+ console.log(chalk.yellow('Search command will be implemented in a future task'));
106
+ console.log('Query:', query, 'Options:', options);
107
+ // TODO: Implement search
108
+ });
109
+ // Test command (placeholder - will be implemented later)
110
+ program
111
+ .command('test <tool>')
112
+ .description('Test connection to AI tool')
113
+ .action(async (tool) => {
114
+ console.log(chalk.yellow('Test command will be implemented in a future task'));
115
+ console.log('Tool:', tool);
116
+ // TODO: Implement connection testing
117
+ });
118
+ // Parse command line arguments
119
+ program.parse(process.argv);
120
+ // If no command was provided, show help
121
+ if (!process.argv.slice(2).length) {
122
+ program.outputHelp();
123
+ }
124
+ /**
125
+ * Generate configurations for AI tools
126
+ */
127
+ async function generateConfigurations(options) {
128
+ const prompts = new InteractivePrompts();
129
+ let tools = [];
130
+ let serverUrl = options.serverUrl;
131
+ let outputDir = options.output;
132
+ // Determine which tools to configure
133
+ if (options.interactive && !options.tool) {
134
+ // Interactive mode
135
+ tools = await prompts.selectTools();
136
+ if (!options.force && !options.yes) {
137
+ serverUrl = await prompts.confirmServerUrl(serverUrl);
138
+ outputDir = await prompts.selectOutputDirectory(outputDir);
139
+ }
140
+ }
141
+ else if (!options.tool) {
142
+ // No tool specified and not interactive - show available tools
143
+ const factory = new ConfigGeneratorFactory(serverUrl);
144
+ const availableTools = factory.getToolInfo();
145
+ console.log(chalk.yellow('No tool specified. Available tools:'));
146
+ availableTools.forEach(tool => {
147
+ console.log(chalk.gray(` • ${tool.name} - ${tool.displayName}`));
148
+ });
149
+ console.log(chalk.blue('\nUsage examples:'));
150
+ console.log(chalk.gray(' code-auditor gen --tool cursor'));
151
+ console.log(chalk.gray(' code-auditor gen --tool cursor,claude,continue'));
152
+ console.log(chalk.gray(' code-auditor gen --tool all'));
153
+ console.log(chalk.gray(' code-auditor gen --interactive'));
154
+ return;
155
+ }
156
+ else {
157
+ // Command line mode
158
+ if (options.tool === 'all') {
159
+ const factory = new ConfigGeneratorFactory(serverUrl);
160
+ tools = factory.getAvailableTools();
161
+ }
162
+ else {
163
+ tools = options.tool.split(',').map((t) => t.trim());
164
+ }
165
+ }
166
+ console.log(chalk.blue(`\nGenerating configurations for: ${tools.join(', ')}`));
167
+ console.log(chalk.gray(`Server URL: ${serverUrl}`));
168
+ console.log(chalk.gray(`Output directory: ${outputDir}\n`));
169
+ // Create factory
170
+ const factory = new ConfigGeneratorFactory(serverUrl);
171
+ const generatedFiles = [];
172
+ const errors = [];
173
+ // Check for existing files
174
+ const existingFiles = [];
175
+ for (const tool of tools) {
176
+ const generator = factory.createGenerator(tool);
177
+ if (generator) {
178
+ const config = generator.generateConfig();
179
+ const outputPath = resolve(outputDir, config.filename);
180
+ try {
181
+ await fs.access(outputPath);
182
+ existingFiles.push(config.filename);
183
+ }
184
+ catch {
185
+ // File doesn't exist, which is fine
186
+ }
187
+ }
188
+ }
189
+ // Confirm overwrite if needed
190
+ if (existingFiles.length > 0 && !options.force && !options.yes) {
191
+ const shouldOverwrite = await prompts.confirmOverwrite(existingFiles);
192
+ if (!shouldOverwrite) {
193
+ console.log(chalk.yellow('Operation cancelled.'));
194
+ return;
195
+ }
196
+ }
197
+ else if (existingFiles.length > 0 && (options.force || options.yes)) {
198
+ console.log(chalk.yellow(`Overwriting ${existingFiles.length} existing file(s)...`));
199
+ }
200
+ // Generate configurations
201
+ for (const tool of tools) {
202
+ try {
203
+ const generator = factory.createGenerator(tool);
204
+ if (!generator) {
205
+ errors.push(`Unknown tool: ${tool}`);
206
+ continue;
207
+ }
208
+ const config = generator.generateConfig();
209
+ const outputPath = resolve(outputDir, config.filename);
210
+ // Ensure directory exists
211
+ await fs.mkdir(dirname(outputPath), { recursive: true });
212
+ // Write main config file
213
+ await fs.writeFile(outputPath, config.content);
214
+ generatedFiles.push(config.filename);
215
+ // Write additional files if any
216
+ if (config.additionalFiles) {
217
+ for (const additionalFile of config.additionalFiles) {
218
+ const additionalPath = resolve(outputDir, additionalFile.filename);
219
+ await fs.mkdir(dirname(additionalPath), { recursive: true });
220
+ await fs.writeFile(additionalPath, additionalFile.content);
221
+ generatedFiles.push(additionalFile.filename);
222
+ }
223
+ }
224
+ // Show success and instructions
225
+ console.log(chalk.green(`✓ Generated ${generator.getToolName()} configuration: ${config.filename}`));
226
+ console.log(chalk.dim('Instructions:'));
227
+ console.log(chalk.gray(config.instructions.trim()));
228
+ console.log('');
229
+ }
230
+ catch (error) {
231
+ errors.push(`Failed to generate config for ${tool}: ${error}`);
232
+ }
233
+ }
234
+ // Show summary
235
+ if (generatedFiles.length > 0) {
236
+ prompts.displaySuccess(generatedFiles);
237
+ }
238
+ if (errors.length > 0) {
239
+ console.log(chalk.red('\nErrors:'));
240
+ errors.forEach(error => {
241
+ console.log(chalk.red(` • ${error}`));
242
+ });
243
+ }
36
244
  }
37
- main();
38
245
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAElE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACtC;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC;;;;;CAKf,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,eAAe,aAAa,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Code Index Database using LokiJS + FlexSearch
3
+ * Pure JavaScript implementation with no native dependencies
4
+ */
5
+ import { EnhancedFunctionMetadata, FunctionMetadata, SearchResult, SearchOptions } from './types.js';
6
+ export declare class CodeIndexDB {
7
+ private static instance;
8
+ private db;
9
+ private functionsCollection;
10
+ private searchIndex;
11
+ private dbPath;
12
+ private isInitialized;
13
+ constructor(dbPath?: string);
14
+ static getInstance(dbPath?: string): CodeIndexDB;
15
+ initialize(): Promise<void>;
16
+ private ensureInitialized;
17
+ /**
18
+ * Normalize function metadata for indexing
19
+ * Converts FunctionMetadata to have required fields for FlexSearch
20
+ */
21
+ private normalizeFunctionData;
22
+ /**
23
+ * Tokenize function name for better search
24
+ * Splits camelCase, PascalCase, and snake_case into individual words
25
+ */
26
+ private tokenizeFunctionName;
27
+ registerFunction(func: FunctionMetadata | EnhancedFunctionMetadata): Promise<void>;
28
+ registerFunctions(functions: (FunctionMetadata | EnhancedFunctionMetadata)[]): Promise<{
29
+ success: boolean;
30
+ registered: number;
31
+ failed: number;
32
+ errors?: Array<{
33
+ function: string;
34
+ error: string;
35
+ }>;
36
+ }>;
37
+ /**
38
+ * Synchronize file index - add new functions, update existing, remove deleted
39
+ * @param filePath The file path to synchronize
40
+ * @param currentFunctions The current functions found in the file
41
+ * @returns Sync statistics
42
+ */
43
+ syncFileIndex(filePath: string, currentFunctions: (FunctionMetadata | EnhancedFunctionMetadata)[]): Promise<{
44
+ added: number;
45
+ updated: number;
46
+ removed: number;
47
+ }>;
48
+ searchFunctions(options: SearchOptions): Promise<SearchResult>;
49
+ /**
50
+ * Execute multi-strategy search with different approaches
51
+ * @param parsedQuery The parsed query object
52
+ * @param searchScores Map to store relevance scores
53
+ * @returns Array of matching documents
54
+ */
55
+ private executeMultiStrategySearch;
56
+ /**
57
+ * Search using FlexSearch and return document results
58
+ */
59
+ private searchWithFlexSearch;
60
+ /**
61
+ * Merge search results with scoring
62
+ */
63
+ private mergeSearchResults;
64
+ /**
65
+ * Calculate bonus score based on which fields matched
66
+ */
67
+ private calculateFieldMatchScore;
68
+ /**
69
+ * Count how many terms match in a document
70
+ */
71
+ private countMatchingTerms;
72
+ /**
73
+ * Get searchable text from document
74
+ */
75
+ private getDocumentSearchText;
76
+ /**
77
+ * Get synonyms for a term using QueryParser
78
+ */
79
+ private getSynonyms;
80
+ /**
81
+ * Exclude documents containing any of the excluded terms
82
+ */
83
+ private excludeTermsFromResults;
84
+ /**
85
+ * Intersect multiple sets to find common elements
86
+ */
87
+ private intersectSets;
88
+ /**
89
+ * Merge filters from options and parsed query
90
+ */
91
+ private mergeFilters;
92
+ /**
93
+ * Apply filters to search results
94
+ */
95
+ private applyFilters;
96
+ findDefinition(name: string, filePath?: string): Promise<EnhancedFunctionMetadata | null>;
97
+ getStats(): Promise<{
98
+ totalFunctions: number;
99
+ languages: Record<string, number>;
100
+ topDependencies: Array<{
101
+ name: string;
102
+ count: number;
103
+ }>;
104
+ filesIndexed: number;
105
+ lastUpdated: Date;
106
+ }>;
107
+ clearIndex(): Promise<void>;
108
+ close(): Promise<void>;
109
+ /**
110
+ * Synchronize a single file's functions with the index
111
+ * Adds new functions, updates existing ones, and removes deleted ones
112
+ */
113
+ synchronizeFile(filePath: string): Promise<{
114
+ added: number;
115
+ updated: number;
116
+ removed: number;
117
+ } | null>;
118
+ /**
119
+ * Performs bulk cleanup of the index by verifying all indexed files still exist
120
+ * and removing entries for deleted files
121
+ */
122
+ bulkCleanup(): Promise<{
123
+ scannedCount: number;
124
+ removedCount: number;
125
+ removedFiles: string[];
126
+ errors: Array<{
127
+ file: string;
128
+ error: string;
129
+ }>;
130
+ }>;
131
+ /**
132
+ * Performs deep synchronization by re-scanning all indexed files
133
+ * Updates function signatures and removes stale entries
134
+ */
135
+ deepSync(progressCallback?: (progress: {
136
+ current: number;
137
+ total: number;
138
+ file: string;
139
+ }) => void): Promise<{
140
+ syncedFiles: number;
141
+ addedFunctions: number;
142
+ updatedFunctions: number;
143
+ removedFunctions: number;
144
+ errors: Array<{
145
+ file: string;
146
+ error: string;
147
+ }>;
148
+ }>;
149
+ }
150
+ //# sourceMappingURL=codeIndexDB.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeIndexDB.d.ts","sourceRoot":"","sources":["../src/codeIndexDB.ts"],"names":[],"mappings":"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"}