@nielspeter/sonarlint-mcp-server 0.3.0 → 0.4.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.
- package/CHANGELOG.md +14 -0
- package/README.md +14 -1
- package/dist/index.js +4 -23
- package/dist/index.js.map +1 -1
- package/dist/sloop-bridge.d.ts +5 -1
- package/dist/sloop-bridge.d.ts.map +1 -1
- package/dist/sloop-bridge.js +46 -116
- package/dist/sloop-bridge.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +4 -0
- package/dist/state.js.map +1 -1
- package/dist/tools/analyze-content.js +1 -1
- package/dist/tools/analyze-content.js.map +1 -1
- package/dist/tools/analyze-file.js +1 -1
- package/dist/tools/analyze-file.js.map +1 -1
- package/dist/tools/analyze-files.d.ts.map +1 -1
- package/dist/tools/analyze-files.js +36 -7
- package/dist/tools/analyze-files.js.map +1 -1
- package/dist/tools/apply-all-quick-fixes.js +1 -1
- package/dist/tools/apply-all-quick-fixes.js.map +1 -1
- package/dist/tools/apply-quick-fix.js +1 -1
- package/dist/tools/apply-quick-fix.js.map +1 -1
- package/dist/tools/health-check.js +1 -1
- package/dist/tools/health-check.js.map +1 -1
- package/dist/utils/scope.d.ts +25 -2
- package/dist/utils/scope.d.ts.map +1 -1
- package/dist/utils/scope.js +67 -8
- package/dist/utils/scope.js.map +1 -1
- package/dist/utils/sloop.d.ts.map +1 -1
- package/dist/utils/sloop.js +5 -1
- package/dist/utils/sloop.js.map +1 -1
- package/package.json +1 -1
- package/dist/tools/analyze-project.d.ts +0 -7
- package/dist/tools/analyze-project.d.ts.map +0 -1
- package/dist/tools/analyze-project.js +0 -109
- package/dist/tools/analyze-project.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.4.0](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.3.1...v0.4.0) (2026-03-30)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* resolve SLOOP analysis hang by pre-registering files before scope creation ([ee1bfb2](https://github.com/nielspeter/sonarlint-mcp-server/commit/ee1bfb24be94b72838fc1fb4e4ff17ba297a9d19))
|
|
11
|
+
|
|
12
|
+
### [0.3.1](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.3.0...v0.3.1) (2026-03-30)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* use project root for scope detection instead of parent directory ([cd1591f](https://github.com/nielspeter/sonarlint-mcp-server/commit/cd1591fff30dea271ce927e6687860043c31566f))
|
|
18
|
+
|
|
5
19
|
## [0.3.0](https://github.com/nielspeter/sonarlint-mcp-server/compare/v0.2.8...v0.3.0) (2026-03-30)
|
|
6
20
|
|
|
7
21
|
|
package/README.md
CHANGED
|
@@ -97,7 +97,6 @@ function process(data) {
|
|
|
97
97
|
|------|-------------|
|
|
98
98
|
| `check_quality` | Check a file for code quality issues |
|
|
99
99
|
| `check_files` | Check multiple files in one call |
|
|
100
|
-
| `check_project` | Run a full project-wide quality scan |
|
|
101
100
|
| `check_code` | Check a code snippet (no file on disk needed) |
|
|
102
101
|
| `fix_issue` | Automatically fix one specific issue |
|
|
103
102
|
| `fix_all_issues` | Automatically fix all fixable issues in a file |
|
|
@@ -158,6 +157,20 @@ The server uses SonarLint's standalone SLOOP backend with:
|
|
|
158
157
|
- **Bi-directional RPC:** Client request handlers implemented
|
|
159
158
|
- **Session Storage:** Results stored in memory for multi-turn conversations
|
|
160
159
|
|
|
160
|
+
### SLOOP Integration: Scope Lifecycle
|
|
161
|
+
|
|
162
|
+
SLOOP requires a specific initialization sequence. Getting this wrong causes analysis to hang:
|
|
163
|
+
|
|
164
|
+
1. **Pre-register files** — Store file DTOs in `scopeFiles` map before creating the scope. SLOOP calls `listFiles` synchronously during scope creation, so files must already be available.
|
|
165
|
+
2. **Create scope** — Send `addConfigurationScope` notification to SLOOP.
|
|
166
|
+
3. **Wait for readiness** — SLOOP sends `didChangeAnalysisReadiness` when the scope is ready. Analysis requests before this point will fail silently.
|
|
167
|
+
4. **Analyse** — Call `analyzeFilesAndTrack` with the files.
|
|
168
|
+
|
|
169
|
+
Key design decisions:
|
|
170
|
+
- **No directory scanning in `listFiles`** — Only return the specific files requested for analysis. Scanning the project root returned 500+ files on real projects and caused multi-minute hangs.
|
|
171
|
+
- **`getBaseDir` returns project root** — Detected via `package.json`, `.git`, etc. SLOOP uses this for `.gitignore` matching and file exclusion patterns.
|
|
172
|
+
- **`ideRelativePath` relative to project root** — SLOOP's `WildcardPattern.match` requires this; null values cause NPEs.
|
|
173
|
+
|
|
161
174
|
## Development
|
|
162
175
|
|
|
163
176
|
```bash
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,6 @@ import { handleAnalyzeFiles } from "./tools/analyze-files.js";
|
|
|
11
11
|
import { handleAnalyzeContent } from "./tools/analyze-content.js";
|
|
12
12
|
import { handleListActiveRules } from "./tools/list-active-rules.js";
|
|
13
13
|
import { handleHealthCheck } from "./tools/health-check.js";
|
|
14
|
-
import { handleAnalyzeProject } from "./tools/analyze-project.js";
|
|
15
14
|
import { handleApplyQuickFix } from "./tools/apply-quick-fix.js";
|
|
16
15
|
import { handleApplyAllQuickFixes } from "./tools/apply-all-quick-fixes.js";
|
|
17
16
|
import { getSloopBridge } from "./state.js";
|
|
@@ -28,7 +27,7 @@ const server = new McpServer({
|
|
|
28
27
|
});
|
|
29
28
|
// Register tool: check_quality
|
|
30
29
|
server.registerTool('check_quality', {
|
|
31
|
-
description: "Check a file for code quality issues — bugs, code smells, security vulnerabilities, and complexity problems. Like having SonarLint in your IDE. Use after writing or modifying code to catch issues early. Returns issues with exact line numbers, severity, and available quick fixes. For multiple files use check_files
|
|
30
|
+
description: "Check a file for code quality issues — bugs, code smells, security vulnerabilities, and complexity problems. Like having SonarLint in your IDE. Use after writing or modifying code to catch issues early. Returns issues with exact line numbers, severity, and available quick fixes. For multiple files use check_files.",
|
|
32
31
|
inputSchema: {
|
|
33
32
|
filePath: z.string().describe("Absolute path to the file to analyze (e.g., /path/to/file.js)"),
|
|
34
33
|
minSeverity: z.enum(["INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER"]).optional().describe("Minimum severity level to include. Filters out issues below this level. Default: INFO (show all)"),
|
|
@@ -44,9 +43,9 @@ server.registerTool('check_quality', {
|
|
|
44
43
|
});
|
|
45
44
|
// Register tool: check_files
|
|
46
45
|
server.registerTool('check_files', {
|
|
47
|
-
description: "Check multiple files for code quality issues in one call — bugs, code smells, security vulnerabilities. Use when reviewing or modifying several files. Output is compact: only files with issues are shown, clean files get a summary count. For a single file use check_quality
|
|
46
|
+
description: "Check multiple files for code quality issues in one call — bugs, code smells, security vulnerabilities. Use when reviewing or modifying several files. Supports glob patterns (e.g. 'src/**/*.ts'). Output is compact: only files with issues are shown, clean files get a summary count. For a single file use check_quality.",
|
|
48
47
|
inputSchema: {
|
|
49
|
-
filePaths: stringArray.describe("Array of
|
|
48
|
+
filePaths: stringArray.describe("Array of file paths or glob patterns to analyze (e.g., ['/path/to/file.ts', 'src/**/*.js'])"),
|
|
50
49
|
groupByFile: z.boolean().optional().default(true).describe("Group issues by file in output (default: true)"),
|
|
51
50
|
minSeverity: z.enum(["INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER"]).optional().describe("Minimum severity level to include. Filters out issues below this level. Default: INFO (show all)"),
|
|
52
51
|
excludeRules: stringArray.optional().describe("List of rule IDs to exclude (e.g., ['typescript:S1135', 'javascript:S125'])"),
|
|
@@ -101,24 +100,6 @@ server.registerTool('health_check', {
|
|
|
101
100
|
return handleToolError(error);
|
|
102
101
|
}
|
|
103
102
|
});
|
|
104
|
-
// Register tool: check_project
|
|
105
|
-
server.registerTool('check_project', {
|
|
106
|
-
description: "Run a full code quality scan on a project directory — finds bugs, code smells, security vulnerabilities, and complexity issues across all source files. Use for project-wide quality assessment or before a release. Output is compact: only files with issues are shown, clean files get a summary count.",
|
|
107
|
-
inputSchema: {
|
|
108
|
-
projectPath: z.string().describe("Absolute path to the project directory to scan"),
|
|
109
|
-
maxFiles: z.number().optional().default(100).describe("Maximum number of files to analyze (default: 100, prevents overwhelming output)"),
|
|
110
|
-
minSeverity: z.enum(["INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER"]).optional().describe("Minimum severity level to include. Filters out issues below this level. Default: INFO (show all)"),
|
|
111
|
-
excludeRules: stringArray.optional().describe("List of rule IDs to exclude (e.g., ['typescript:S1135', 'javascript:S125'])"),
|
|
112
|
-
includePatterns: stringArray.optional().describe("File glob patterns to include (e.g., ['src/**/*.ts', 'lib/**/*.js']). Default: all supported extensions"),
|
|
113
|
-
},
|
|
114
|
-
}, async (args) => {
|
|
115
|
-
try {
|
|
116
|
-
return await handleAnalyzeProject(args);
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
return handleToolError(error);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
103
|
// Register tool: fix_issue
|
|
123
104
|
server.registerTool('fix_issue', {
|
|
124
105
|
description: "Automatically fix one specific code quality issue. Applies the SonarLint-suggested fix for the issue at the given file, line, and rule. The file is modified directly. To fix all issues in a file at once, use fix_all_issues instead.",
|
|
@@ -173,7 +154,7 @@ async function main() {
|
|
|
173
154
|
console.error("[MCP] Starting SonarLint MCP Server...");
|
|
174
155
|
console.error(`[MCP] Version: ${packageJson.version}`);
|
|
175
156
|
console.error("[MCP] Mode: Standalone (no IDE required)");
|
|
176
|
-
console.error("[MCP] Tools: check_quality, check_files, check_code,
|
|
157
|
+
console.error("[MCP] Tools: check_quality, check_files, check_code, list_rules, fix_issue, fix_all_issues, health_check");
|
|
177
158
|
console.error("[MCP] Features:");
|
|
178
159
|
console.error("[MCP] - Session storage for multi-turn conversations");
|
|
179
160
|
console.error("[MCP] - Batch analysis for multiple files");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,oEAAoE;AACpE,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EACxD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CACpB,CAAC;AACF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/sloop-bridge.d.ts
CHANGED
|
@@ -22,7 +22,6 @@ export declare class SloopBridge extends EventEmitter {
|
|
|
22
22
|
private setupMessageHandlers;
|
|
23
23
|
private processMessages;
|
|
24
24
|
private handleMessage;
|
|
25
|
-
private findFilesInDirectory;
|
|
26
25
|
private handleClientRequest;
|
|
27
26
|
private sendResponse;
|
|
28
27
|
sendRequest(method: string, params?: any): Promise<any>;
|
|
@@ -37,6 +36,11 @@ export declare class SloopBridge extends EventEmitter {
|
|
|
37
36
|
* Returns a map of rule key -> rule definition.
|
|
38
37
|
*/
|
|
39
38
|
listAllStandaloneRulesDefinitions(): Promise<any>;
|
|
39
|
+
/**
|
|
40
|
+
* Wait for a scope to become ready for analysis.
|
|
41
|
+
* SLOOP emits didChangeAnalysisReadiness after processing addConfigurationScope.
|
|
42
|
+
*/
|
|
43
|
+
waitForScopeReady(scopeId: string, timeoutMs?: number): Promise<void>;
|
|
40
44
|
addConfigurationScope(scopeId: string, params?: {
|
|
41
45
|
name?: string;
|
|
42
46
|
parentId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sloop-bridge.d.ts","sourceRoot":"","sources":["../src/sloop-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"sloop-bridge.d.ts","sourceRoot":"","sources":["../src/sloop-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAI3B;IACL,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsF;IAC7G,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB;IAwB1D,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,gBAAgB;IAUlB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwE9B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,aAAa;IAiErB,OAAO,CAAC,mBAAmB;IAqD3B,OAAO,CAAC,YAAY;IAgBd,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAyC7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAuBpD,OAAO,CAAC,cAAc;YAeR,UAAU;IAoFxB,OAAO,CAAC,gBAAgB;IAQxB,WAAW,IAAI,OAAO;IAIhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;;OAGG;IACG,iCAAiC,IAAI,OAAO,CAAC,GAAG,CAAC;IAIvD;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpE,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAYzF,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CA4DrF"}
|
package/dist/sloop-bridge.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { spawn } from 'child_process';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { tmpdir } from 'os';
|
|
4
|
-
import { join
|
|
5
|
-
import { existsSync, mkdirSync, readdirSync
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { existsSync, mkdirSync, readdirSync } from 'fs';
|
|
6
6
|
import { IssueCollector } from './utils/issue-collector.js';
|
|
7
7
|
import { buildClientFileDtos } from './utils/file-registration.js';
|
|
8
|
+
import { scopeToProjectRoot, scopeFiles } from './state.js';
|
|
8
9
|
export class SloopBridge extends EventEmitter {
|
|
9
10
|
process = null;
|
|
10
11
|
connected = false;
|
|
@@ -203,133 +204,38 @@ export class SloopBridge extends EventEmitter {
|
|
|
203
204
|
console.error(`[SLOOP] Received raiseHotspots: ${count} hotspots for analysis ${analysisId}`);
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
try {
|
|
213
|
-
const items = readdirSync(dir);
|
|
214
|
-
for (const item of items) {
|
|
215
|
-
const fullPath = join(dir, item);
|
|
216
|
-
const relativePath = relative(baseDir, fullPath);
|
|
217
|
-
// Skip excluded directories
|
|
218
|
-
if (relativePath.startsWith('node_modules') || relativePath.startsWith('.git') ||
|
|
219
|
-
relativePath.startsWith('dist') || relativePath.startsWith('build')) {
|
|
220
|
-
continue;
|
|
221
|
-
}
|
|
222
|
-
const stat = statSync(fullPath);
|
|
223
|
-
if (stat.isDirectory()) {
|
|
224
|
-
files.push(...this.findFilesInDirectory(fullPath, baseDir));
|
|
225
|
-
}
|
|
226
|
-
else if (stat.isFile()) {
|
|
227
|
-
// Only include source files
|
|
228
|
-
if (/\.(js|ts|py|java|html|css|php|go|rb)$/.test(item)) {
|
|
229
|
-
files.push(`file://${fullPath}`);
|
|
207
|
+
else if (message.method === 'didChangeAnalysisReadiness' && message.params) {
|
|
208
|
+
const { configurationScopeIds, areReadyForAnalysis } = message.params;
|
|
209
|
+
console.error(`[SLOOP] Analysis readiness changed: scopes=${configurationScopeIds}, ready=${areReadyForAnalysis}`);
|
|
210
|
+
if (areReadyForAnalysis) {
|
|
211
|
+
for (const scopeId of configurationScopeIds) {
|
|
212
|
+
this.emit('scopeReady', scopeId);
|
|
230
213
|
}
|
|
231
214
|
}
|
|
232
215
|
}
|
|
233
216
|
}
|
|
234
|
-
catch (err) {
|
|
235
|
-
console.error('Error reading directory:', dir, err);
|
|
236
|
-
}
|
|
237
|
-
return files;
|
|
238
217
|
}
|
|
239
218
|
handleClientRequest(request) {
|
|
240
219
|
console.error(`[DEBUG] Handling client request: ${request.method}`);
|
|
241
|
-
//
|
|
220
|
+
// listFiles — return only the files pre-registered in scopeFiles.
|
|
221
|
+
// IMPORTANT: Do NOT scan the project directory here. SLOOP calls listFiles
|
|
222
|
+
// during addConfigurationScope, so only the files the caller asked to analyse
|
|
223
|
+
// should be returned. Scanning caused 500+ file responses and hangs on real
|
|
224
|
+
// projects. Files are pre-registered in getOrCreateScope() before the scope
|
|
225
|
+
// is created. See scope.ts for the full sequencing explanation.
|
|
242
226
|
if (request.method === 'listFiles') {
|
|
243
227
|
const configScopeId = request.params?.configScopeId;
|
|
244
|
-
const
|
|
245
|
-
|
|
246
|
-
// Helper to detect language from extension
|
|
247
|
-
const detectLanguage = (filePath) => {
|
|
248
|
-
if (filePath.endsWith('.js'))
|
|
249
|
-
return 'JS';
|
|
250
|
-
if (filePath.endsWith('.ts'))
|
|
251
|
-
return 'TS';
|
|
252
|
-
if (filePath.endsWith('.py'))
|
|
253
|
-
return 'PYTHON';
|
|
254
|
-
if (filePath.endsWith('.java'))
|
|
255
|
-
return 'JAVA';
|
|
256
|
-
if (filePath.endsWith('.html'))
|
|
257
|
-
return 'HTML';
|
|
258
|
-
if (filePath.endsWith('.css'))
|
|
259
|
-
return 'CSS';
|
|
260
|
-
return null;
|
|
261
|
-
};
|
|
262
|
-
// Scan root directory for source files
|
|
263
|
-
try {
|
|
264
|
-
const rootItems = readdirSync(baseDir);
|
|
265
|
-
for (const item of rootItems) {
|
|
266
|
-
const fullPath = join(baseDir, item);
|
|
267
|
-
try {
|
|
268
|
-
const stat = statSync(fullPath);
|
|
269
|
-
if (stat.isFile() && /\.(js|ts|py|java|html|css|php|go|rb)$/.test(item)) {
|
|
270
|
-
const content = readFileSync(fullPath, 'utf-8');
|
|
271
|
-
const relativePath = relative(baseDir, fullPath);
|
|
272
|
-
const language = detectLanguage(fullPath);
|
|
273
|
-
// Debug: Log first 200 chars of content for test files
|
|
274
|
-
if (item === 'test-simple.js' || item === 'test-python.py') {
|
|
275
|
-
console.error(`[DEBUG listFiles] ${item}: ${content.substring(0, 200)}`);
|
|
276
|
-
}
|
|
277
|
-
fileDtos.push({
|
|
278
|
-
uri: `file://${fullPath}`,
|
|
279
|
-
fsPath: fullPath,
|
|
280
|
-
ideRelativePath: relativePath,
|
|
281
|
-
configScopeId: configScopeId,
|
|
282
|
-
isTest: false,
|
|
283
|
-
charset: 'UTF-8',
|
|
284
|
-
content: content,
|
|
285
|
-
detectedLanguage: language,
|
|
286
|
-
isUserDefined: true // CRITICAL: Must be true for SLOOP to analyze!
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
else if (stat.isDirectory() && item === 'src') {
|
|
290
|
-
// Only scan src directory recursively
|
|
291
|
-
const srcFiles = this.findFilesInDirectory(fullPath);
|
|
292
|
-
for (const fileUri of srcFiles) {
|
|
293
|
-
const filePath = fileUri.replace('file://', '');
|
|
294
|
-
try {
|
|
295
|
-
const content = readFileSync(filePath, 'utf-8');
|
|
296
|
-
const relativePath = relative(baseDir, filePath);
|
|
297
|
-
const language = detectLanguage(filePath);
|
|
298
|
-
fileDtos.push({
|
|
299
|
-
uri: fileUri,
|
|
300
|
-
fsPath: filePath,
|
|
301
|
-
ideRelativePath: relativePath,
|
|
302
|
-
configScopeId: configScopeId,
|
|
303
|
-
isTest: relativePath.includes('test'),
|
|
304
|
-
charset: 'UTF-8',
|
|
305
|
-
content: content,
|
|
306
|
-
detectedLanguage: language,
|
|
307
|
-
isUserDefined: true // CRITICAL: Must be true for SLOOP to analyze!
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
catch (readErr) {
|
|
311
|
-
console.error(`Could not read file ${filePath}:`, readErr);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
catch (e) {
|
|
317
|
-
// Skip files we can't access
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
catch (err) {
|
|
322
|
-
console.error('Error listing files:', err);
|
|
323
|
-
}
|
|
324
|
-
console.error(`[DEBUG] Returning ${fileDtos.length} ClientFileDto objects for listFiles`);
|
|
228
|
+
const fileDtos = scopeFiles.get(configScopeId) || [];
|
|
229
|
+
console.error(`[DEBUG] listFiles for scope ${configScopeId}: returning ${fileDtos.length} registered files`);
|
|
325
230
|
this.sendResponse(request.id, { files: fileDtos });
|
|
326
231
|
return;
|
|
327
232
|
}
|
|
328
233
|
// Implement getBaseDir - SLOOP needs the base directory for the config scope
|
|
329
234
|
if (request.method === 'getBaseDir') {
|
|
330
|
-
|
|
331
|
-
const
|
|
332
|
-
|
|
235
|
+
const configScopeId = request.params?.configurationScopeId ?? request.params?.configScopeId;
|
|
236
|
+
const projectRoot = scopeToProjectRoot.get(configScopeId) || process.cwd();
|
|
237
|
+
console.error(`[DEBUG] getBaseDir for scope ${configScopeId}: ${projectRoot}`);
|
|
238
|
+
this.sendResponse(request.id, { path: projectRoot });
|
|
333
239
|
return;
|
|
334
240
|
}
|
|
335
241
|
// Implement getFileExclusions - file patterns to exclude from analysis
|
|
@@ -542,6 +448,26 @@ export class SloopBridge extends EventEmitter {
|
|
|
542
448
|
async listAllStandaloneRulesDefinitions() {
|
|
543
449
|
return this.sendRequest('rules/listAllStandaloneRulesDefinitions');
|
|
544
450
|
}
|
|
451
|
+
/**
|
|
452
|
+
* Wait for a scope to become ready for analysis.
|
|
453
|
+
* SLOOP emits didChangeAnalysisReadiness after processing addConfigurationScope.
|
|
454
|
+
*/
|
|
455
|
+
waitForScopeReady(scopeId, timeoutMs = 30000) {
|
|
456
|
+
return new Promise((resolve, reject) => {
|
|
457
|
+
const timer = setTimeout(() => {
|
|
458
|
+
this.removeListener('scopeReady', onReady);
|
|
459
|
+
reject(new Error(`Timeout waiting for scope ${scopeId} to become ready`));
|
|
460
|
+
}, timeoutMs);
|
|
461
|
+
const onReady = (readyScopeId) => {
|
|
462
|
+
if (readyScopeId === scopeId) {
|
|
463
|
+
clearTimeout(timer);
|
|
464
|
+
this.removeListener('scopeReady', onReady);
|
|
465
|
+
resolve();
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
this.on('scopeReady', onReady);
|
|
469
|
+
});
|
|
470
|
+
}
|
|
545
471
|
addConfigurationScope(scopeId, params = {}) {
|
|
546
472
|
this.sendNotification('configuration/didAddConfigurationScopes', {
|
|
547
473
|
addedScopes: [{
|
|
@@ -566,7 +492,11 @@ export class SloopBridge extends EventEmitter {
|
|
|
566
492
|
console.error(`[ANALYSIS] Analysis ID: ${analysisId}`);
|
|
567
493
|
const startTime = Date.now();
|
|
568
494
|
// Register files in SLOOP's virtual file system before analysis
|
|
569
|
-
const
|
|
495
|
+
const projectRoot = scopeToProjectRoot.get(configScopeId);
|
|
496
|
+
const fileDtos = buildClientFileDtos(filePaths, configScopeId, projectRoot);
|
|
497
|
+
// Store so listFiles callback returns only these files, not a full directory scan
|
|
498
|
+
const existing = scopeFiles.get(configScopeId) || [];
|
|
499
|
+
scopeFiles.set(configScopeId, [...existing, ...fileDtos]);
|
|
570
500
|
this.sendNotification('file/didUpdateFileSystem', {
|
|
571
501
|
addedFiles: fileDtos,
|
|
572
502
|
changedFiles: [],
|
package/dist/sloop-bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sloop-bridge.js","sourceRoot":"","sources":["../src/sloop-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sloop-bridge.js","sourceRoot":"","sources":["../src/sloop-bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ import { SloopBridge } from "./sloop-bridge.js";
|
|
|
5
5
|
import type { AnalysisResult, BatchAnalysisResult } from "./types.js";
|
|
6
6
|
export declare let sloopBridge: SloopBridge | null;
|
|
7
7
|
export declare const scopeMap: Map<string, string>;
|
|
8
|
+
export declare const scopeToProjectRoot: Map<string, string>;
|
|
9
|
+
export declare const scopeFiles: Map<string, any[]>;
|
|
8
10
|
export declare const sessionResults: Map<string, AnalysisResult>;
|
|
9
11
|
export declare const batchResults: Map<string, BatchAnalysisResult>;
|
|
10
12
|
export declare const serverStartTime: number;
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtE,eAAO,IAAI,WAAW,EAAE,WAAW,GAAG,IAAW,CAAC;AAGlD,eAAO,MAAM,QAAQ,qBAA4B,CAAC;AAGlD,eAAO,MAAM,cAAc,6BAAoC,CAAC;AAChE,eAAO,MAAM,YAAY,kCAAyC,CAAC;AAGnE,eAAO,MAAM,eAAe,QAAa,CAAC;AAE1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD"}
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtE,eAAO,IAAI,WAAW,EAAE,WAAW,GAAG,IAAW,CAAC;AAGlD,eAAO,MAAM,QAAQ,qBAA4B,CAAC;AAGlD,eAAO,MAAM,kBAAkB,qBAA4B,CAAC;AAG5D,eAAO,MAAM,UAAU,oBAA2B,CAAC;AAGnD,eAAO,MAAM,cAAc,6BAAoC,CAAC;AAChE,eAAO,MAAM,YAAY,kCAAyC,CAAC;AAGnE,eAAO,MAAM,eAAe,QAAa,CAAC;AAE1C;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD"}
|
package/dist/state.js
CHANGED
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
export let sloopBridge = null;
|
|
6
6
|
// Project root -> scopeId mapping
|
|
7
7
|
export const scopeMap = new Map();
|
|
8
|
+
// Reverse mapping: scopeId -> projectRoot (used by SLOOP callbacks like listFiles, getBaseDir)
|
|
9
|
+
export const scopeToProjectRoot = new Map();
|
|
10
|
+
// scopeId -> registered file DTOs (so listFiles returns only files we care about)
|
|
11
|
+
export const scopeFiles = new Map();
|
|
8
12
|
// Session storage for analysis results (for MCP resources)
|
|
9
13
|
export const sessionResults = new Map();
|
|
10
14
|
export const batchResults = new Map();
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,kDAAkD;AAClD,MAAM,CAAC,IAAI,WAAW,GAAuB,IAAI,CAAC;AAElD,kCAAkC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAElD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEnE,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,kDAAkD;AAClD,MAAM,CAAC,IAAI,WAAW,GAAuB,IAAI,CAAC;AAElD,kCAAkC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAElD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE5D,kFAAkF;AAClF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiB,CAAC;AAEnD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEnE,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -37,7 +37,7 @@ export async function handleAnalyzeContent(args) {
|
|
|
37
37
|
// Ensure SLOOP is initialized
|
|
38
38
|
const bridge = await ensureSloopBridge();
|
|
39
39
|
// Get or create scope
|
|
40
|
-
const scopeId = getOrCreateScope(tempFilePath);
|
|
40
|
+
const scopeId = await getOrCreateScope(tempFilePath);
|
|
41
41
|
// Analyze the temp file
|
|
42
42
|
const rawResult = await bridge.analyzeFilesAndTrack(scopeId, [tempFilePath]);
|
|
43
43
|
// Extract issues from raw result
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-content.js","sourceRoot":"","sources":["../../src/tools/analyze-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAS;IAClD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAgE,CAAC;IAEzG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,UAAU,CAClB,eAAe,EACf,8CAA8C,EAC9C,KAAK,CACN,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,MAAM,cAAc,GAA2B;QAC7C,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;IAC/C,MAAM,YAAY,GAAG,QAAQ,IAAI,kBAAkB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IACtE,oEAAoE;IACpE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;IAEvD,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,gBAAgB,YAAY,EAAE,CAAC,CAAC;IAEpF,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,6BAA6B;QAC7B,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9C,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEzC,sBAAsB;QACtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-content.js","sourceRoot":"","sources":["../../src/tools/analyze-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export async function handleAnalyzeFile(args) {
|
|
|
22
22
|
// Ensure SLOOP is initialized
|
|
23
23
|
const bridge = await ensureSloopBridge();
|
|
24
24
|
// Get or create scope
|
|
25
|
-
const scopeId = getOrCreateScope(filePath);
|
|
25
|
+
const scopeId = await getOrCreateScope(filePath);
|
|
26
26
|
console.error(`[MCP] Analyzing file: ${filePath}`);
|
|
27
27
|
console.error(`[MCP] Scope: ${scopeId}, Language: ${language}`);
|
|
28
28
|
// Analyze the file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-file.js","sourceRoot":"","sources":["../../src/tools/analyze-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAS;IAC/C,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAI/C,CAAC;IAEF,uBAAuB;IACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,mBAAmB,QAAQ,EAAE,EAC7B,YAAY,QAAQ,uDAAuD,EAC3E,KAAK,CACN,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,UAAU,CAClB,wBAAwB,QAAQ,EAAE,EAClC,6BAA6B,GAAG,mGAAmG,EACnI,KAAK,CACN,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEzC,sBAAsB;IACtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-file.js","sourceRoot":"","sources":["../../src/tools/analyze-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-files.d.ts","sourceRoot":"","sources":["../../src/tools/analyze-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyze-files.d.ts","sourceRoot":"","sources":["../../src/tools/analyze-files.ts"],"names":[],"mappings":"AAkCA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;GAqJjD"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { existsSync } from "fs";
|
|
2
|
+
import { createRequire } from "module";
|
|
3
|
+
import { resolve } from "path";
|
|
4
|
+
// globSync is available in Node 22+ but @types/node doesn't export it yet
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const { globSync } = require("fs");
|
|
2
7
|
import { SloopError } from "../errors.js";
|
|
3
8
|
import { ensureSloopBridge } from "../utils/sloop.js";
|
|
4
9
|
import { getOrCreateScope } from "../utils/scope.js";
|
|
@@ -6,28 +11,52 @@ import { detectLanguage } from "../utils/language.js";
|
|
|
6
11
|
import { transformSloopIssues } from "../utils/transforms.js";
|
|
7
12
|
import { formatBatchAnalysisResult } from "../utils/formatting.js";
|
|
8
13
|
import { batchResults } from "../state.js";
|
|
14
|
+
/**
|
|
15
|
+
* Expand glob patterns in file paths. Entries without glob characters are
|
|
16
|
+
* returned as-is; entries with * or ? are expanded via fs.globSync.
|
|
17
|
+
*/
|
|
18
|
+
function expandGlobs(paths) {
|
|
19
|
+
const result = [];
|
|
20
|
+
for (const p of paths) {
|
|
21
|
+
if (p.includes('*') || p.includes('?')) {
|
|
22
|
+
const matches = globSync(p, { cwd: process.cwd() });
|
|
23
|
+
result.push(...matches.map(m => resolve(m)));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
result.push(p);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Deduplicate (multiple globs could match the same file)
|
|
30
|
+
return [...new Set(result)];
|
|
31
|
+
}
|
|
9
32
|
export async function handleAnalyzeFiles(args) {
|
|
10
|
-
const { filePaths, minSeverity, excludeRules } = args;
|
|
11
|
-
if (!Array.isArray(
|
|
12
|
-
throw new SloopError("No files provided", "Please provide at least one file path to analyze.", false);
|
|
33
|
+
const { filePaths: rawPaths, minSeverity, excludeRules } = args;
|
|
34
|
+
if (!Array.isArray(rawPaths) || rawPaths.length === 0) {
|
|
35
|
+
throw new SloopError("No files provided", "Please provide at least one file path or glob pattern to analyze.", false);
|
|
36
|
+
}
|
|
37
|
+
// Expand any glob patterns (e.g. "src/**/*.ts") into concrete file paths
|
|
38
|
+
const filePaths = expandGlobs(rawPaths);
|
|
39
|
+
if (filePaths.length === 0) {
|
|
40
|
+
throw new SloopError("No files matched", `No files matched the provided patterns:\n${rawPaths.map(p => `- ${p}`).join('\n')}`, false);
|
|
13
41
|
}
|
|
14
|
-
// Validate all files exist
|
|
42
|
+
// Validate all resolved files exist
|
|
15
43
|
const missingFiles = filePaths.filter(fp => !existsSync(fp));
|
|
16
44
|
if (missingFiles.length > 0) {
|
|
17
45
|
throw new SloopError(`Files not found: ${missingFiles.join(', ')}`, `The following files do not exist:\n${missingFiles.map(f => `- ${f}`).join('\n')}`, false);
|
|
18
46
|
}
|
|
19
47
|
console.error(`[MCP] Batch analyzing ${filePaths.length} files...`);
|
|
48
|
+
// Ensure SLOOP is initialized
|
|
49
|
+
const bridge = await ensureSloopBridge();
|
|
20
50
|
// Group files by project root for scope management
|
|
51
|
+
// Pass all files to getOrCreateScope so they're pre-registered for listFiles
|
|
21
52
|
const filesByScope = new Map();
|
|
22
53
|
for (const filePath of filePaths) {
|
|
23
|
-
const scopeId = getOrCreateScope(filePath);
|
|
54
|
+
const scopeId = await getOrCreateScope(filePath, filePaths);
|
|
24
55
|
if (!filesByScope.has(scopeId)) {
|
|
25
56
|
filesByScope.set(scopeId, []);
|
|
26
57
|
}
|
|
27
58
|
filesByScope.get(scopeId).push(filePath);
|
|
28
59
|
}
|
|
29
|
-
// Ensure SLOOP is initialized
|
|
30
|
-
const bridge = await ensureSloopBridge();
|
|
31
60
|
// Analyze each scope
|
|
32
61
|
const allResults = [];
|
|
33
62
|
for (const [scopeId, scopeFiles] of filesByScope) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-files.js","sourceRoot":"","sources":["../../src/tools/analyze-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAS;IAChD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"analyze-files.js","sourceRoot":"","sources":["../../src/tools/analyze-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export async function handleApplyAllQuickFixes(args) {
|
|
|
13
13
|
}
|
|
14
14
|
// Analyze the file to get all issues with quick fixes
|
|
15
15
|
const bridge = await ensureSloopBridge();
|
|
16
|
-
const scopeId = getOrCreateScope(filePath);
|
|
16
|
+
const scopeId = await getOrCreateScope(filePath);
|
|
17
17
|
const rawResult = await bridge.analyzeFilesAndTrack(scopeId, [filePath]);
|
|
18
18
|
const rawIssues = rawResult.raisedIssues?.length ? rawResult.raisedIssues : (rawResult.rawIssues || []);
|
|
19
19
|
console.error(`[MCP] Found ${rawIssues.length} total issues`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-all-quick-fixes.js","sourceRoot":"","sources":["../../src/tools/apply-all-quick-fixes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAS;IACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAA4B,CAAC;IAElD,OAAO,CAAC,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;IAEhE,uBAAuB;IACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,mBAAmB,QAAQ,EAAE,EAC7B,YAAY,QAAQ,uDAAuD,EAC3E,KAAK,CACN,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"apply-all-quick-fixes.js","sourceRoot":"","sources":["../../src/tools/apply-all-quick-fixes.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export async function handleApplyQuickFix(args) {
|
|
|
12
12
|
}
|
|
13
13
|
// Re-analyze the file to get current issues with quick fixes
|
|
14
14
|
const bridge = await ensureSloopBridge();
|
|
15
|
-
const scopeId = getOrCreateScope(filePath);
|
|
15
|
+
const scopeId = await getOrCreateScope(filePath);
|
|
16
16
|
const rawResult = await bridge.analyzeFilesAndTrack(scopeId, [filePath]);
|
|
17
17
|
const rawIssues = rawResult.raisedIssues?.length ? rawResult.raisedIssues : (rawResult.rawIssues || []);
|
|
18
18
|
// Find the issue at the specified line with the specified rule
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-quick-fix.js","sourceRoot":"","sources":["../../src/tools/apply-quick-fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAS;IACjD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAwD,CAAC;IAE1F,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,OAAO,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;IAE7E,uBAAuB;IACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,mBAAmB,QAAQ,EAAE,EAC7B,YAAY,QAAQ,uDAAuD,EAC3E,KAAK,CACN,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"apply-quick-fix.js","sourceRoot":"","sources":["../../src/tools/apply-quick-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ export async function handleHealthCheck() {
|
|
|
72
72
|
rss: `${Math.round(memoryUsage.rss / 1024 / 1024)}MB`,
|
|
73
73
|
},
|
|
74
74
|
cache: cacheStats,
|
|
75
|
-
tools: ["check_quality", "check_files", "check_code", "
|
|
75
|
+
tools: ["check_quality", "check_files", "check_code", "list_rules", "fix_issue", "fix_all_issues", "health_check"],
|
|
76
76
|
features: [
|
|
77
77
|
"Session storage for multi-turn conversations",
|
|
78
78
|
"Batch analysis",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../src/tools/health-check.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/scope.d.ts
CHANGED
|
@@ -2,7 +2,30 @@
|
|
|
2
2
|
* Configuration scope management utilities
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* Get or create configuration scope for a project
|
|
5
|
+
* Get or create a SLOOP configuration scope for a project.
|
|
6
|
+
*
|
|
7
|
+
* Uses the project root (detected via package.json, .git, etc.) so all files
|
|
8
|
+
* in the same project share one scope.
|
|
9
|
+
*
|
|
10
|
+
* ## CRITICAL: File registration ordering
|
|
11
|
+
*
|
|
12
|
+
* SLOOP calls `listFiles` immediately when it receives `addConfigurationScope`.
|
|
13
|
+
* If no files are registered in `scopeFiles` at that point, the scope initialises
|
|
14
|
+
* with an empty file list and analysis will hang waiting for files that SLOOP
|
|
15
|
+
* never received.
|
|
16
|
+
*
|
|
17
|
+
* The correct sequence is:
|
|
18
|
+
* 1. Pre-register file DTOs in `scopeFiles` (so `listFiles` can return them)
|
|
19
|
+
* 2. Send `addConfigurationScope` notification to SLOOP
|
|
20
|
+
* 3. Wait for `didChangeAnalysisReadiness` (scope is ready)
|
|
21
|
+
* 4. Call `analyzeFilesAndTrack`
|
|
22
|
+
*
|
|
23
|
+
* Never scan the project directory in `listFiles` — only return the files the
|
|
24
|
+
* caller explicitly asked to analyse. Scanning caused 500+ file responses and
|
|
25
|
+
* multi-minute hangs on real projects.
|
|
26
|
+
*
|
|
27
|
+
* @param filePath - A file used to detect the project root
|
|
28
|
+
* @param filePaths - All files to analyse (registered so listFiles returns them)
|
|
6
29
|
*/
|
|
7
|
-
export declare function getOrCreateScope(filePath: string): string
|
|
30
|
+
export declare function getOrCreateScope(filePath: string, filePaths?: string[]): Promise<string>;
|
|
8
31
|
//# sourceMappingURL=scope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/utils/scope.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/utils/scope.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4BH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2C9F"}
|
package/dist/utils/scope.js
CHANGED
|
@@ -1,30 +1,89 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration scope management utilities
|
|
3
3
|
*/
|
|
4
|
-
import { dirname } from "path";
|
|
4
|
+
import { dirname, join } from "path";
|
|
5
|
+
import { existsSync } from "fs";
|
|
5
6
|
import { createHash } from "crypto";
|
|
6
|
-
import { scopeMap, getSloopBridge } from "../state.js";
|
|
7
|
+
import { scopeMap, scopeToProjectRoot, scopeFiles, getSloopBridge } from "../state.js";
|
|
8
|
+
import { buildClientFileDtos } from "./file-registration.js";
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
10
|
+
* Find the project root by walking up to find package.json, .git, etc.
|
|
9
11
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
function findProjectRoot(startPath) {
|
|
13
|
+
let dir = startPath;
|
|
14
|
+
const markers = ['package.json', '.git', 'pom.xml', 'build.gradle', 'pyproject.toml', 'go.mod'];
|
|
15
|
+
while (dir !== dirname(dir)) { // stop at filesystem root
|
|
16
|
+
for (const marker of markers) {
|
|
17
|
+
if (existsSync(join(dir, marker))) {
|
|
18
|
+
return dir;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
dir = dirname(dir);
|
|
22
|
+
}
|
|
23
|
+
// Fallback: use the original directory
|
|
24
|
+
return startPath;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get or create a SLOOP configuration scope for a project.
|
|
28
|
+
*
|
|
29
|
+
* Uses the project root (detected via package.json, .git, etc.) so all files
|
|
30
|
+
* in the same project share one scope.
|
|
31
|
+
*
|
|
32
|
+
* ## CRITICAL: File registration ordering
|
|
33
|
+
*
|
|
34
|
+
* SLOOP calls `listFiles` immediately when it receives `addConfigurationScope`.
|
|
35
|
+
* If no files are registered in `scopeFiles` at that point, the scope initialises
|
|
36
|
+
* with an empty file list and analysis will hang waiting for files that SLOOP
|
|
37
|
+
* never received.
|
|
38
|
+
*
|
|
39
|
+
* The correct sequence is:
|
|
40
|
+
* 1. Pre-register file DTOs in `scopeFiles` (so `listFiles` can return them)
|
|
41
|
+
* 2. Send `addConfigurationScope` notification to SLOOP
|
|
42
|
+
* 3. Wait for `didChangeAnalysisReadiness` (scope is ready)
|
|
43
|
+
* 4. Call `analyzeFilesAndTrack`
|
|
44
|
+
*
|
|
45
|
+
* Never scan the project directory in `listFiles` — only return the files the
|
|
46
|
+
* caller explicitly asked to analyse. Scanning caused 500+ file responses and
|
|
47
|
+
* multi-minute hangs on real projects.
|
|
48
|
+
*
|
|
49
|
+
* @param filePath - A file used to detect the project root
|
|
50
|
+
* @param filePaths - All files to analyse (registered so listFiles returns them)
|
|
51
|
+
*/
|
|
52
|
+
export async function getOrCreateScope(filePath, filePaths) {
|
|
53
|
+
const projectRoot = findProjectRoot(dirname(filePath));
|
|
12
54
|
const scopeId = scopeMap.get(projectRoot);
|
|
13
55
|
if (scopeId) {
|
|
56
|
+
// Scope exists — register any new files so listFiles returns them
|
|
57
|
+
if (filePaths?.length) {
|
|
58
|
+
const dtos = buildClientFileDtos(filePaths, scopeId, projectRoot);
|
|
59
|
+
const existing = scopeFiles.get(scopeId) || [];
|
|
60
|
+
scopeFiles.set(scopeId, [...existing, ...dtos]);
|
|
61
|
+
}
|
|
14
62
|
return scopeId;
|
|
15
63
|
}
|
|
16
|
-
// Create new scope ID based on project root hash
|
|
17
64
|
const hash = createHash('md5').update(projectRoot).digest('hex').substring(0, 8);
|
|
18
65
|
const newScopeId = `scope-${hash}`;
|
|
19
66
|
console.error(`[MCP] Creating new configuration scope: ${newScopeId} for ${projectRoot}`);
|
|
20
|
-
|
|
67
|
+
scopeToProjectRoot.set(newScopeId, projectRoot);
|
|
68
|
+
scopeMap.set(projectRoot, newScopeId);
|
|
69
|
+
// Step 1: Pre-register files BEFORE creating scope.
|
|
70
|
+
// SLOOP calls listFiles synchronously during addConfigurationScope — the files
|
|
71
|
+
// must already be in scopeFiles or listFiles returns an empty list and the
|
|
72
|
+
// scope never becomes ready.
|
|
73
|
+
const pathsToRegister = filePaths?.length ? filePaths : [filePath];
|
|
74
|
+
const dtos = buildClientFileDtos(pathsToRegister, newScopeId, projectRoot);
|
|
75
|
+
scopeFiles.set(newScopeId, dtos);
|
|
76
|
+
// Step 2–3: Create scope and wait for readiness
|
|
21
77
|
const sloopBridge = getSloopBridge();
|
|
22
78
|
if (sloopBridge) {
|
|
79
|
+
const readyPromise = sloopBridge.waitForScopeReady(newScopeId);
|
|
23
80
|
sloopBridge.addConfigurationScope(newScopeId, {
|
|
24
81
|
name: `Project: ${projectRoot}`,
|
|
25
82
|
});
|
|
83
|
+
console.error(`[MCP] Waiting for scope ${newScopeId} to become ready...`);
|
|
84
|
+
await readyPromise;
|
|
85
|
+
console.error(`[MCP] Scope ${newScopeId} is ready for analysis`);
|
|
26
86
|
}
|
|
27
|
-
scopeMap.set(projectRoot, newScopeId);
|
|
28
87
|
return newScopeId;
|
|
29
88
|
}
|
|
30
89
|
//# sourceMappingURL=scope.js.map
|
package/dist/utils/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/utils/scope.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/utils/scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sloop.d.ts","sourceRoot":"","sources":["../../src/utils/sloop.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,eAAO,MAAM,YAAY,QAA2B,CAAC;AAErD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"sloop.d.ts","sourceRoot":"","sources":["../../src/utils/sloop.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,eAAO,MAAM,YAAY,QAA2B,CAAC;AAErD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAoC9D"}
|
package/dist/utils/sloop.js
CHANGED
|
@@ -19,6 +19,8 @@ export async function ensureSloopBridge() {
|
|
|
19
19
|
if (existing) {
|
|
20
20
|
return existing;
|
|
21
21
|
}
|
|
22
|
+
const t0 = Date.now();
|
|
23
|
+
const elapsed = () => `${((Date.now() - t0) / 1000).toFixed(1)}s`;
|
|
22
24
|
console.error("[MCP] Initializing SLOOP bridge...");
|
|
23
25
|
// Check if plugins are downloaded
|
|
24
26
|
const pluginsDir = join(PACKAGE_ROOT, "sonarlint-backend", "plugins");
|
|
@@ -26,10 +28,12 @@ export async function ensureSloopBridge() {
|
|
|
26
28
|
throw new SloopError("Backend not found", "SonarLint backend not installed. The postinstall script may have failed. Try reinstalling: npm install -g @nielspeter/sonarlint-mcp-server", false);
|
|
27
29
|
}
|
|
28
30
|
try {
|
|
31
|
+
console.error(`[MCP] +${elapsed()} Creating bridge...`);
|
|
29
32
|
const bridge = new SloopBridge(PACKAGE_ROOT);
|
|
33
|
+
console.error(`[MCP] +${elapsed()} Connecting (starts Java + sends initialize)...`);
|
|
30
34
|
await bridge.connect();
|
|
31
35
|
setSloopBridge(bridge);
|
|
32
|
-
console.error(
|
|
36
|
+
console.error(`[MCP] +${elapsed()} SLOOP bridge initialized successfully`);
|
|
33
37
|
return bridge;
|
|
34
38
|
}
|
|
35
39
|
catch (error) {
|
package/dist/utils/sloop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sloop.js","sourceRoot":"","sources":["../../src/utils/sloop.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oEAAoE;AACpE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAE,yCAAyC;AAEhG;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEpD,kCAAkC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,mBAAmB,EACnB,4IAA4I,EAC5I,KAAK,CACN,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"sloop.js","sourceRoot":"","sources":["../../src/utils/sloop.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oEAAoE;AACpE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAE,yCAAyC;AAEhG;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAElE,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEpD,kCAAkC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,mBAAmB,EACnB,4IAA4I,EAC5I,KAAK,CACN,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,iDAAiD,CAAC,CAAC;QACpF,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,wCAAwC,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAClB,+BAA+B,KAAK,EAAE,EACtC,uFAAuF,EACvF,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-project.d.ts","sourceRoot":"","sources":["../../src/tools/analyze-project.ts"],"names":[],"mappings":"AAKA,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,GAAG;;;;;GAoInD"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { existsSync, statSync, readdirSync } from "fs";
|
|
2
|
-
import { join, extname, relative, basename } from "path";
|
|
3
|
-
import { SloopError } from "../errors.js";
|
|
4
|
-
import { handleAnalyzeFiles } from "./analyze-files.js";
|
|
5
|
-
export async function handleAnalyzeProject(args) {
|
|
6
|
-
const { projectPath, maxFiles = 100, minSeverity, excludeRules, includePatterns } = args;
|
|
7
|
-
// Validate project path exists
|
|
8
|
-
if (!existsSync(projectPath)) {
|
|
9
|
-
throw new SloopError(`Project path not found: ${projectPath}`, `The directory ${projectPath} does not exist. Please check the path and try again.`, false);
|
|
10
|
-
}
|
|
11
|
-
const stats = statSync(projectPath);
|
|
12
|
-
if (!stats.isDirectory()) {
|
|
13
|
-
throw new SloopError(`Not a directory: ${projectPath}`, `The path ${projectPath} is not a directory. Please provide a directory path.`, false);
|
|
14
|
-
}
|
|
15
|
-
console.error(`[MCP] Scanning project: ${projectPath}`);
|
|
16
|
-
// Define supported extensions
|
|
17
|
-
const supportedExtensions = ['.js', '.jsx', '.ts', '.tsx', '.py', '.java', '.go', '.php', '.rb', '.html', '.css', '.xml'];
|
|
18
|
-
// Directories to exclude
|
|
19
|
-
const excludeDirs = new Set([
|
|
20
|
-
'node_modules', 'dist', 'build', '.git', '.svn', '.hg',
|
|
21
|
-
'coverage', '.next', '.nuxt', 'out', 'target', 'bin',
|
|
22
|
-
'__pycache__', '.pytest_cache', '.mypy_cache', 'venv', '.venv'
|
|
23
|
-
]);
|
|
24
|
-
// Recursively find all source files
|
|
25
|
-
function findSourceFiles(dir, files = []) {
|
|
26
|
-
try {
|
|
27
|
-
const entries = readdirSync(dir, { withFileTypes: true });
|
|
28
|
-
for (const entry of entries) {
|
|
29
|
-
// Skip excluded directories
|
|
30
|
-
if (entry.isDirectory() && excludeDirs.has(entry.name)) {
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
const fullPath = join(dir, entry.name);
|
|
34
|
-
if (entry.isDirectory()) {
|
|
35
|
-
findSourceFiles(fullPath, files);
|
|
36
|
-
}
|
|
37
|
-
else if (entry.isFile()) {
|
|
38
|
-
const ext = extname(entry.name);
|
|
39
|
-
if (supportedExtensions.includes(ext)) {
|
|
40
|
-
// Check includePatterns if specified
|
|
41
|
-
if (includePatterns && includePatterns.length > 0) {
|
|
42
|
-
const relativePath = relative(projectPath, fullPath);
|
|
43
|
-
// Simple pattern matching (supports ** and *)
|
|
44
|
-
const matches = includePatterns.some(pattern => {
|
|
45
|
-
const regex = new RegExp('^' + pattern.replace(/\*\*/g, '.*').replace(/\*/g, '[^/]*') + '$');
|
|
46
|
-
return regex.test(relativePath);
|
|
47
|
-
});
|
|
48
|
-
if (matches) {
|
|
49
|
-
files.push(fullPath);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
files.push(fullPath);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
catch (err) {
|
|
60
|
-
console.error(`[MCP] Error scanning directory ${dir}:`, err);
|
|
61
|
-
}
|
|
62
|
-
return files;
|
|
63
|
-
}
|
|
64
|
-
const allFiles = findSourceFiles(projectPath);
|
|
65
|
-
console.error(`[MCP] Found ${allFiles.length} source files`);
|
|
66
|
-
if (allFiles.length === 0) {
|
|
67
|
-
return {
|
|
68
|
-
content: [
|
|
69
|
-
{
|
|
70
|
-
type: "text",
|
|
71
|
-
text: `No source files found in ${projectPath}.\n\nSupported extensions: ${supportedExtensions.join(', ')}`,
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
// Limit number of files
|
|
77
|
-
const filesToAnalyze = allFiles.slice(0, maxFiles);
|
|
78
|
-
if (allFiles.length > maxFiles) {
|
|
79
|
-
console.error(`[MCP] Limiting analysis to ${maxFiles} files (found ${allFiles.length})`);
|
|
80
|
-
}
|
|
81
|
-
// Use handleAnalyzeFiles to do the actual analysis
|
|
82
|
-
const result = await handleAnalyzeFiles({
|
|
83
|
-
filePaths: filesToAnalyze,
|
|
84
|
-
groupByFile: true,
|
|
85
|
-
minSeverity,
|
|
86
|
-
excludeRules,
|
|
87
|
-
});
|
|
88
|
-
// Add project-specific context to the output
|
|
89
|
-
const resultText = result.content[0].text;
|
|
90
|
-
const projectSummary = `
|
|
91
|
-
📦 Project Scan: ${basename(projectPath)}
|
|
92
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
|
-
|
|
94
|
-
Project Path: ${projectPath}
|
|
95
|
-
Total Source Files: ${allFiles.length}
|
|
96
|
-
Files Analyzed: ${filesToAnalyze.length}
|
|
97
|
-
${allFiles.length > maxFiles ? `⚠️ Limited to ${maxFiles} files (use maxFiles parameter to adjust)\n` : ''}
|
|
98
|
-
${resultText}
|
|
99
|
-
`;
|
|
100
|
-
return {
|
|
101
|
-
content: [
|
|
102
|
-
{
|
|
103
|
-
type: "text",
|
|
104
|
-
text: projectSummary,
|
|
105
|
-
},
|
|
106
|
-
],
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=analyze-project.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-project.js","sourceRoot":"","sources":["../../src/tools/analyze-project.ts"],"names":[],"mappings":"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"}
|