phpstan-mcp-mx 0.22.0 → 0.23.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 +7 -0
- package/README.md +43 -17
- package/dist/baseline.js +24 -12
- package/dist/baseline.js.map +1 -1
- package/dist/changed.js +52 -26
- package/dist/changed.js.map +1 -1
- package/dist/compare.js +12 -6
- package/dist/compare.js.map +1 -1
- package/dist/composer.js +43 -21
- package/dist/composer.js.map +1 -1
- package/dist/config.js +8 -4
- package/dist/config.js.map +1 -1
- package/dist/defaults.js +2 -1
- package/dist/defaults.js.map +1 -1
- package/dist/dumptype.js +16 -8
- package/dist/dumptype.js.map +1 -1
- package/dist/failure.js.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/php.js +10 -5
- package/dist/php.js.map +1 -1
- package/dist/phpstan/error.js.map +1 -1
- package/dist/phpstan/output.js +12 -6
- package/dist/phpstan/output.js.map +1 -1
- package/dist/phpstan/parameters.js.map +1 -1
- package/dist/phpstan/process.js +23 -9
- package/dist/phpstan/process.js.map +1 -1
- package/dist/phpstan/queue.js +4 -2
- package/dist/phpstan/queue.js.map +1 -1
- package/dist/phpstan.js +24 -12
- package/dist/phpstan.js.map +1 -1
- package/dist/project.d.ts +6 -2
- package/dist/project.js +57 -18
- package/dist/project.js.map +1 -1
- package/dist/report.js +38 -19
- package/dist/report.js.map +1 -1
- package/dist/root-source.d.ts +43 -0
- package/dist/root-source.js +124 -0
- package/dist/root-source.js.map +1 -0
- package/dist/roots.d.ts +12 -0
- package/dist/roots.js +23 -6
- package/dist/roots.js.map +1 -1
- package/dist/runner.js +14 -7
- package/dist/runner.js.map +1 -1
- package/dist/runs.js +6 -3
- package/dist/runs.js.map +1 -1
- package/dist/schema-dialect.js +6 -3
- package/dist/schema-dialect.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.js +9 -5
- package/dist/server.js.map +1 -1
- package/dist/tmpdir.js +6 -3
- package/dist/tmpdir.js.map +1 -1
- package/dist/tools/analysis.d.ts +4 -4
- package/dist/tools/analysis.js +4 -2
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/inspect.d.ts +7 -7
- package/dist/tools/inspect.js +85 -34
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/prompts.d.ts +3 -3
- package/dist/tools/prompts.js +3 -3
- package/dist/tools/prompts.js.map +1 -1
- package/dist/tools/shared.d.ts +2 -2
- package/dist/tools/shared.js +7 -5
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/writes.d.ts +3 -3
- package/dist/tools/writes.js +3 -3
- package/dist/tools/writes.js.map +1 -1
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +2 -1
- package/dist/tools.js.map +1 -1
- package/dist/unmatched.js +30 -15
- package/dist/unmatched.js.map +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,+EAA+E;AAC/E,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe,EAAE,SAAwB,iBAAiB,EAAE,UAA0B,EAAE;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runs.js
CHANGED
|
@@ -46,8 +46,9 @@ export class RunStore {
|
|
|
46
46
|
// Een Map houdt de volgorde van toevoegen aan; de eerste sleutel is dus de oudste.
|
|
47
47
|
while (this.runs.size > this.max) {
|
|
48
48
|
const oldest = this.runs.keys().next().value;
|
|
49
|
-
if (oldest === undefined)
|
|
49
|
+
if (oldest === undefined) {
|
|
50
50
|
break;
|
|
51
|
+
}
|
|
51
52
|
this.runs.delete(oldest);
|
|
52
53
|
}
|
|
53
54
|
return id;
|
|
@@ -70,15 +71,17 @@ export class RunStore {
|
|
|
70
71
|
find(id, project, key, maxAgeMs) {
|
|
71
72
|
this.prune();
|
|
72
73
|
const run = this.runs.get(id);
|
|
73
|
-
if (run === undefined || run.project !== project || run.key !== key)
|
|
74
|
+
if (run === undefined || run.project !== project || run.key !== key) {
|
|
74
75
|
return null;
|
|
76
|
+
}
|
|
75
77
|
return run.createdAt < this.now() - maxAgeMs ? null : run;
|
|
76
78
|
}
|
|
77
79
|
prune() {
|
|
78
80
|
const grens = this.now() - this.keepMs;
|
|
79
81
|
for (const [id, run] of this.runs) {
|
|
80
|
-
if (run.createdAt < grens)
|
|
82
|
+
if (run.createdAt < grens) {
|
|
81
83
|
this.runs.delete(id);
|
|
84
|
+
}
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
87
|
}
|
package/dist/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
package/dist/schema-dialect.js
CHANGED
|
@@ -17,11 +17,13 @@
|
|
|
17
17
|
* elders nog gebruiken.
|
|
18
18
|
*/
|
|
19
19
|
export function stripSchemaDialect(message) {
|
|
20
|
-
if (!('result' in message))
|
|
20
|
+
if (!('result' in message)) {
|
|
21
21
|
return message;
|
|
22
|
+
}
|
|
22
23
|
const tools = message.result.tools;
|
|
23
|
-
if (!Array.isArray(tools))
|
|
24
|
+
if (!Array.isArray(tools)) {
|
|
24
25
|
return message;
|
|
26
|
+
}
|
|
25
27
|
return {
|
|
26
28
|
...message,
|
|
27
29
|
result: { ...message.result, tools: tools.map(withoutDialect) },
|
|
@@ -41,8 +43,9 @@ export function withoutSchemaDialect(transport) {
|
|
|
41
43
|
return transport;
|
|
42
44
|
}
|
|
43
45
|
function withoutDialect(tool) {
|
|
44
|
-
if (typeof tool !== 'object' || tool === null)
|
|
46
|
+
if (typeof tool !== 'object' || tool === null) {
|
|
45
47
|
return tool;
|
|
48
|
+
}
|
|
46
49
|
const copy = { ...tool };
|
|
47
50
|
for (const key of ['inputSchema', 'outputSchema']) {
|
|
48
51
|
const schema = copy[key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-dialect.js","sourceRoot":"","sources":["../src/schema-dialect.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAuB;
|
|
1
|
+
{"version":3,"file":"schema-dialect.js","sourceRoot":"","sources":["../src/schema-dialect.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAuB;IAExD,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAI,OAAO,CAAC,MAA8B,CAAC,KAAK,CAAC;IAE5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;KAChE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAsB,SAAY;IAEpE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IAEnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,GAAI,IAAgC,EAAE,CAAC;IAE/E,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACzE,MAAM,IAAI,GAA4B,EAAE,GAAI,MAAkC,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
2
2
|
import type { Root } from './roots.js';
|
|
3
3
|
/**
|
|
4
4
|
* Bouwt de MCP-server met de tools die op deze set roots van toepassing zijn.
|
|
5
|
-
* De roots worden één keer bij het opstarten ingelezen: ze komen uit de
|
|
5
|
+
* De geconfigureerde roots worden één keer bij het opstarten ingelezen: ze komen uit de
|
|
6
6
|
* serverconfiguratie, niet uit een tool-argument, en horen dus niet per aanroep
|
|
7
|
-
* te kunnen wijzigen.
|
|
7
|
+
* te kunnen wijzigen. Zijn er geen, dan gelden de mappen die de client deelt (MCP
|
|
8
|
+
* roots); ook die komen niet uit een tool-argument. Zie root-source.ts.
|
|
8
9
|
*
|
|
9
10
|
* Staat bewust los van index.ts: dat bestand start bij import meteen de server,
|
|
10
11
|
* en een test die alleen de tools wil aanspreken moet dat niet in gang zetten.
|
package/dist/server.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { RootSource } from './root-source.js';
|
|
2
3
|
import { withoutSchemaDialect } from './schema-dialect.js';
|
|
3
4
|
import { registerTools } from './tools.js';
|
|
4
5
|
import { VERSION } from './version.js';
|
|
5
6
|
/**
|
|
6
7
|
* Bouwt de MCP-server met de tools die op deze set roots van toepassing zijn.
|
|
7
|
-
* De roots worden één keer bij het opstarten ingelezen: ze komen uit de
|
|
8
|
+
* De geconfigureerde roots worden één keer bij het opstarten ingelezen: ze komen uit de
|
|
8
9
|
* serverconfiguratie, niet uit een tool-argument, en horen dus niet per aanroep
|
|
9
|
-
* te kunnen wijzigen.
|
|
10
|
+
* te kunnen wijzigen. Zijn er geen, dan gelden de mappen die de client deelt (MCP
|
|
11
|
+
* roots); ook die komen niet uit een tool-argument. Zie root-source.ts.
|
|
10
12
|
*
|
|
11
13
|
* Staat bewust los van index.ts: dat bestand start bij import meteen de server,
|
|
12
14
|
* en een test die alleen de tools wil aanspreken moet dat niet in gang zetten.
|
|
@@ -18,10 +20,12 @@ export function createServer(roots) {
|
|
|
18
20
|
// is dus geen belofte zonder handler de valkuil die bij `tools` wél geldt.
|
|
19
21
|
capabilities: { logging: {} },
|
|
20
22
|
instructions: 'Static analysis of PHP projects with PHPStan. Every tool expects an ' +
|
|
21
|
-
'explicit `project
|
|
22
|
-
'
|
|
23
|
+
'explicit `project`: an absolute path, or a path relative to the working ' +
|
|
24
|
+
'directory the client shares ("." for that directory itself). The server ' +
|
|
25
|
+
'remembers no project between calls. Call list_projects to see which ' +
|
|
26
|
+
'projects are in scope.',
|
|
23
27
|
});
|
|
24
|
-
registerTools(server, roots);
|
|
28
|
+
registerTools(server, new RootSource(roots, server.server));
|
|
25
29
|
// Hier en niet in index.ts: dan geldt het ook voor de tests, die via een
|
|
26
30
|
// InMemoryTransport met een echte SDK-client praten. Zie schema-dialect.ts.
|
|
27
31
|
const connect = server.connect.bind(server);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IAExC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,EACzC;QACE,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,YAAY,EACV,sEAAsE;YACtE,0EAA0E;YAC1E,0EAA0E;YAC1E,sEAAsE;YACtE,wBAAwB;KAC3B,CACF,CAAC;IAEF,aAAa,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5D,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/tmpdir.js
CHANGED
|
@@ -25,10 +25,12 @@ const HASH_LENGTH = 12;
|
|
|
25
25
|
*/
|
|
26
26
|
export function loadTmpDirMode(env = process.env) {
|
|
27
27
|
const configured = (env[TMPDIR_ENV_VAR] ?? fromConfig('tmpDir', env))?.trim().toLowerCase();
|
|
28
|
-
if (configured === undefined || configured === '')
|
|
28
|
+
if (configured === undefined || configured === '') {
|
|
29
29
|
return 'project';
|
|
30
|
-
|
|
30
|
+
}
|
|
31
|
+
if (configured === 'project' || configured === 'shared') {
|
|
31
32
|
return configured;
|
|
33
|
+
}
|
|
32
34
|
throw new TmpDirError(`${TMPDIR_ENV_VAR} is set to "${configured}". Valid values are "project" (a separate ` +
|
|
33
35
|
'directory per project, the default) and "shared" (the system temp directory).');
|
|
34
36
|
}
|
|
@@ -69,8 +71,9 @@ function lockHash(project) {
|
|
|
69
71
|
* platformen dezelfde valkuil als de procesgroep bij een timeout.
|
|
70
72
|
*/
|
|
71
73
|
export function tmpDirEnv(project, env = process.env) {
|
|
72
|
-
if (loadTmpDirMode(env) === 'shared')
|
|
74
|
+
if (loadTmpDirMode(env) === 'shared') {
|
|
73
75
|
return {};
|
|
76
|
+
}
|
|
74
77
|
const path = projectTmpDir(project);
|
|
75
78
|
try {
|
|
76
79
|
mkdirSync(path, { recursive: true });
|
package/dist/tmpdir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmpdir.js","sourceRoot":"","sources":["../src/tmpdir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,+EAA+E;AAC/E,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe,EAAE,SAAwB,iBAAiB,EAAE,UAA0B,EAAE;
|
|
1
|
+
{"version":3,"file":"tmpdir.js","sourceRoot":"","sources":["../src/tmpdir.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/analysis.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RootSource } from '../root-source.js';
|
|
3
3
|
import type { RunStore } from '../runs.js';
|
|
4
4
|
/** Hangt `analyse_project` aan de server: PHPStan over (een deel van) een project. */
|
|
5
|
-
export declare function registerAnalyseProject(server: McpServer, roots:
|
|
5
|
+
export declare function registerAnalyseProject(server: McpServer, roots: RootSource, runs: RunStore): void;
|
|
6
6
|
/** Hangt `analyse_changed` aan de server: alleen wat git gewijzigd heeft. */
|
|
7
|
-
export declare function registerAnalyseChanged(server: McpServer, roots:
|
|
7
|
+
export declare function registerAnalyseChanged(server: McpServer, roots: RootSource, runs: RunStore): void;
|
|
8
8
|
/** Hangt `analyse_file` aan de server: één bestand of map binnen een project. */
|
|
9
|
-
export declare function registerAnalyseFile(server: McpServer, roots:
|
|
9
|
+
export declare function registerAnalyseFile(server: McpServer, roots: RootSource, runs: RunStore): void;
|
package/dist/tools/analysis.js
CHANGED
|
@@ -208,8 +208,9 @@ function describeHidden(changed, baselines) {
|
|
|
208
208
|
function describeNothingChanged(changed) {
|
|
209
209
|
const wat = changed.staged ? 'staged' : 'changed';
|
|
210
210
|
const lines = [`No ${wat} PHP files relative to ${changed.base}.`];
|
|
211
|
-
if (changed.skipped.length > 0)
|
|
211
|
+
if (changed.skipped.length > 0) {
|
|
212
212
|
lines.push('', ...skippedLines(changed));
|
|
213
|
+
}
|
|
213
214
|
return lines.join('\n');
|
|
214
215
|
}
|
|
215
216
|
/** Wat er geanalyseerd is, zodat zichtbaar is waarop het rapport eronder betrekking heeft. */
|
|
@@ -222,8 +223,9 @@ function describeChanged(resolved, changed, heleProject = false) {
|
|
|
222
223
|
if (heleProject) {
|
|
223
224
|
lines.push('', "Analysed: everything the config's paths cover, so findings in files you did not change are included.");
|
|
224
225
|
}
|
|
225
|
-
if (changed.skipped.length > 0)
|
|
226
|
+
if (changed.skipped.length > 0) {
|
|
226
227
|
lines.push('', ...skippedLines(changed));
|
|
228
|
+
}
|
|
227
229
|
return lines.join('\n');
|
|
228
230
|
}
|
|
229
231
|
function skippedLines(changed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/inspect.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RootSource } from '../root-source.js';
|
|
3
3
|
/** Hangt `list_projects` aan de server: welke projecten binnen bereik liggen. */
|
|
4
|
-
export declare function registerListProjects(server: McpServer, roots:
|
|
4
|
+
export declare function registerListProjects(server: McpServer, roots: RootSource): void;
|
|
5
5
|
/**
|
|
6
6
|
* Eén prompt met het werkpatroon. Er zijn zes tools waarvan drie op elkaar lijken;
|
|
7
7
|
* zonder dit moet het model de juiste volgorde uit de losse beschrijvingen
|
|
8
8
|
* reconstrueren, en dan is `analyse_project` op een groot project de eerste gok.
|
|
9
9
|
*/
|
|
10
|
-
export declare function registerServerConfig(server: McpServer, roots:
|
|
10
|
+
export declare function registerServerConfig(server: McpServer, roots: RootSource): void;
|
|
11
11
|
/** Hangt `diagnose_project` aan de server: PHPStans eigen opstelling in een project. */
|
|
12
|
-
export declare function registerDiagnose(server: McpServer, roots:
|
|
12
|
+
export declare function registerDiagnose(server: McpServer, roots: RootSource): void;
|
|
13
13
|
/** Hangt `baseline_summary` aan de server: wat de baseline verbergt. */
|
|
14
|
-
export declare function registerBaselineSummary(server: McpServer, roots:
|
|
14
|
+
export declare function registerBaselineSummary(server: McpServer, roots: RootSource): void;
|
|
15
15
|
/** Hangt `unmatched_ignores` aan de server: negeerregels die niets meer doen. */
|
|
16
|
-
export declare function registerUnmatchedIgnores(server: McpServer, roots:
|
|
16
|
+
export declare function registerUnmatchedIgnores(server: McpServer, roots: RootSource): void;
|
|
17
17
|
/** Hangt `inspect_type` aan de server: het type dat PHPStan op een regel afleidt. */
|
|
18
|
-
export declare function registerInspectType(server: McpServer, roots:
|
|
18
|
+
export declare function registerInspectType(server: McpServer, roots: RootSource): void;
|
package/dist/tools/inspect.js
CHANGED
|
@@ -3,8 +3,8 @@ import { baselineEntriesFor, renderBaseline, summariseBaseline } from '../baseli
|
|
|
3
3
|
import { GitError, countInlineIgnores } from '../changed.js';
|
|
4
4
|
import { diagnose, loadDefaultMemoryLimit, loadMaxParallel, serverInvocation } from '../phpstan.js';
|
|
5
5
|
import { findMissingExtensions, readComposerScripts, renderComposerScripts, renderMissingExtensions } from '../composer.js';
|
|
6
|
-
import { discoverProjects
|
|
7
|
-
import { ROOTS_ENV_VAR } from '../roots.js';
|
|
6
|
+
import { discoverProjects } from '../project.js';
|
|
7
|
+
import { ROOTS_ENV_VAR, soleRoot } from '../roots.js';
|
|
8
8
|
import { PROJECTS_ENV_VAR, loadProjectDefaults } from '../defaults.js';
|
|
9
9
|
import { PHP_ENV_VAR, hostPhp } from '../php.js';
|
|
10
10
|
import { loadRunners } from '../runner.js';
|
|
@@ -39,21 +39,27 @@ export function registerListProjects(server, roots) {
|
|
|
39
39
|
})).describe('Defaults the server sets for this project; a tool argument takes precedence'),
|
|
40
40
|
})),
|
|
41
41
|
problems: z.array(z.object({ root: z.string(), problem: z.string() })),
|
|
42
|
+
rootsFrom: z
|
|
43
|
+
.enum(['config', 'client'])
|
|
44
|
+
.describe(`Where the directories come from: ${ROOTS_ENV_VAR}, or the directories the client shares (MCP roots)`),
|
|
45
|
+
workingDirectory: nullable(z.string()).describe('What a relative `project` such as "." resolves against, or null if nothing'),
|
|
42
46
|
},
|
|
43
47
|
annotations: readOnly(),
|
|
44
|
-
}, () => {
|
|
48
|
+
}, async () => {
|
|
49
|
+
const scope = await roots.current();
|
|
45
50
|
// Met de reden erbij: zonder viel dit terug op `phpstan_failed`, terwijl
|
|
46
51
|
// PHPStan hier niet eens gestart is. Juist bij deze tool het beginpunt moet
|
|
47
52
|
// een aanroeper kunnen zien dat het aan de serverconfiguratie ligt.
|
|
48
|
-
if (
|
|
49
|
-
return failure(`No project directories are configured
|
|
50
|
-
|
|
51
|
-
'separated by colons.', 'no_roots_configured', { hint: `Set ${ROOTS_ENV_VAR}, or "roots" in the config file.` });
|
|
53
|
+
if (scope.allowed.length === 0) {
|
|
54
|
+
return failure(`No project directories are configured, and the client shares none: ${scope.clientProblem ?? 'its list of roots is empty'}. ` +
|
|
55
|
+
`Set ${ROOTS_ENV_VAR} in the MCP server configuration to the absolute paths that may be analysed, separated by colons.`, 'no_roots_configured', { hint: `Set ${ROOTS_ENV_VAR}, or "roots" in the config file.` });
|
|
52
56
|
}
|
|
53
|
-
const projects = discoverProjects(
|
|
54
|
-
const problems =
|
|
57
|
+
const projects = discoverProjects(scope.allowed);
|
|
58
|
+
const problems = scope.allowed
|
|
55
59
|
.filter((root) => root.problem !== null)
|
|
56
60
|
.map((root) => ({ root: root.raw, problem: root.problem }));
|
|
61
|
+
const workingDirectory = soleRoot(scope.client);
|
|
62
|
+
const rootsFrom = scope.origin;
|
|
57
63
|
// Kapotte standaarden laten de lijst heel (describeProject valt dan terug op
|
|
58
64
|
// wat er ligt), maar horen hier wel te staan: anders lijkt het alsof ze gelden.
|
|
59
65
|
try {
|
|
@@ -63,13 +69,25 @@ export function registerListProjects(server, roots) {
|
|
|
63
69
|
problems.push({ root: PROJECTS_ENV_VAR, problem: error instanceof Error ? error.message : String(error) });
|
|
64
70
|
}
|
|
65
71
|
return {
|
|
66
|
-
content: [{ type: 'text', text: renderProjects(projects, problems) }],
|
|
67
|
-
structuredContent: { projects, problems },
|
|
72
|
+
content: [{ type: 'text', text: renderProjects({ projects, problems, rootsFrom, workingDirectory }) }],
|
|
73
|
+
structuredContent: { projects, problems, rootsFrom, workingDirectory },
|
|
68
74
|
};
|
|
69
75
|
});
|
|
70
76
|
}
|
|
71
|
-
function renderProjects(
|
|
77
|
+
function renderProjects(listing) {
|
|
78
|
+
const { projects, problems } = listing;
|
|
72
79
|
const lines = [];
|
|
80
|
+
// Wie de lijst leest, moet kunnen zien waarom juist deze mappen: zonder PHPSTAN_MCP_ROOTS is
|
|
81
|
+
// het de map van de sessie, en dat verklaart waarom een ander project hier ontbreekt.
|
|
82
|
+
if (listing.rootsFrom === 'client') {
|
|
83
|
+
lines.push(`Directories shared by the client (MCP roots), because ${ROOTS_ENV_VAR} is not set.`);
|
|
84
|
+
}
|
|
85
|
+
if (listing.workingDirectory !== null) {
|
|
86
|
+
lines.push(`"." as project means ${listing.workingDirectory}; other relative paths start there too.`);
|
|
87
|
+
}
|
|
88
|
+
if (lines.length > 0) {
|
|
89
|
+
lines.push('');
|
|
90
|
+
}
|
|
73
91
|
if (projects.length === 0) {
|
|
74
92
|
lines.push('No PHP projects found under the configured directories.');
|
|
75
93
|
}
|
|
@@ -86,20 +104,24 @@ function renderProjects(projects, problems) {
|
|
|
86
104
|
}
|
|
87
105
|
if (problems.length > 0) {
|
|
88
106
|
lines.push('', 'Skipped entries from the configuration:');
|
|
89
|
-
for (const problem of problems)
|
|
107
|
+
for (const problem of problems) {
|
|
90
108
|
lines.push(`- ${problem.root}: ${problem.problem}`);
|
|
109
|
+
}
|
|
91
110
|
}
|
|
92
111
|
return lines.join('\n');
|
|
93
112
|
}
|
|
94
113
|
/** "memory 2G, timeout 600s" alleen wat gezet is, in een vaste volgorde. */
|
|
95
114
|
function describeDefaults(defaults) {
|
|
96
115
|
const delen = [];
|
|
97
|
-
if (defaults.memoryLimit !== null)
|
|
116
|
+
if (defaults.memoryLimit !== null) {
|
|
98
117
|
delen.push(`memory ${defaults.memoryLimit}`);
|
|
99
|
-
|
|
118
|
+
}
|
|
119
|
+
if (defaults.timeoutSeconds !== null) {
|
|
100
120
|
delen.push(`timeout ${String(defaults.timeoutSeconds)}s`);
|
|
101
|
-
|
|
121
|
+
}
|
|
122
|
+
if (defaults.config !== null) {
|
|
102
123
|
delen.push(`config ${defaults.config}`);
|
|
124
|
+
}
|
|
103
125
|
return delen.join(', ');
|
|
104
126
|
}
|
|
105
127
|
/**
|
|
@@ -123,6 +145,17 @@ export function registerServerConfig(server, roots) {
|
|
|
123
145
|
path: nullable(z.string()).describe('The resolved path, or null if the root is unusable'),
|
|
124
146
|
problem: nullable(z.string()),
|
|
125
147
|
})),
|
|
148
|
+
rootsFrom: z
|
|
149
|
+
.enum(['config', 'client'])
|
|
150
|
+
.describe(`Which directories are in scope: those from ${ROOTS_ENV_VAR}, or, when it is not set, those the client shares`),
|
|
151
|
+
clientRoots: z
|
|
152
|
+
.array(z.object({
|
|
153
|
+
raw: z.string().describe('The URI the client sent'),
|
|
154
|
+
path: nullable(z.string()).describe('The resolved path, or null if it is unusable'),
|
|
155
|
+
problem: nullable(z.string()),
|
|
156
|
+
}))
|
|
157
|
+
.describe('Directories the client shares (MCP roots); a relative `project` resolves against the only one'),
|
|
158
|
+
clientRootsProblem: nullable(z.string()).describe('Why the client shares no directories, or null'),
|
|
126
159
|
memoryLimit: nullable(z.string()).describe('Default --memory-limit, or null if it is not set'),
|
|
127
160
|
maxParallel: nullable(z.number()).describe('How many analyses may run in parallel; null if the value was rejected'),
|
|
128
161
|
tmpDir: nullable(z.string()).describe('"project" of "shared"'),
|
|
@@ -143,14 +176,19 @@ export function registerServerConfig(server, roots) {
|
|
|
143
176
|
.describe('Settings that were rejected; those fields are then null'),
|
|
144
177
|
},
|
|
145
178
|
annotations: readOnly(),
|
|
146
|
-
}, () => {
|
|
179
|
+
}, async () => {
|
|
180
|
+
const scope = await roots.current();
|
|
181
|
+
const describe = (root) => ({ raw: root.raw, path: root.path, problem: root.problem });
|
|
147
182
|
// Elke waarde apart uitlezen: de loaders weigeren een onbruikbare waarde met
|
|
148
183
|
// een uitleg, en juist die uitleg is hier het antwoord. Eén mislukte
|
|
149
184
|
// instelling mag de rest niet onzichtbaar maken.
|
|
150
185
|
const problems = [];
|
|
151
186
|
const config = {
|
|
152
187
|
version: VERSION,
|
|
153
|
-
roots:
|
|
188
|
+
roots: scope.origin === 'config' ? scope.allowed.map(describe) : [],
|
|
189
|
+
rootsFrom: scope.origin,
|
|
190
|
+
clientRoots: scope.client.map(describe),
|
|
191
|
+
clientRootsProblem: scope.clientProblem,
|
|
154
192
|
memoryLimit: setting(() => loadDefaultMemoryLimit() ?? null, problems),
|
|
155
193
|
maxParallel: setting(() => loadMaxParallel(), problems),
|
|
156
194
|
tmpDir: setting(() => loadTmpDirMode(), problems),
|
|
@@ -186,25 +224,33 @@ function setting(read, problems) {
|
|
|
186
224
|
}
|
|
187
225
|
}
|
|
188
226
|
function renderConfig(config) {
|
|
189
|
-
const lines = [`phpstan-mcp ${config.version}`, '',
|
|
227
|
+
const lines = [`phpstan-mcp ${config.version}`, '', `Project directories (${ROOTS_ENV_VAR}):`];
|
|
228
|
+
const show = (root) => ` ${root.path ?? root.raw}${root.problem === null ? '' : ` ${root.problem}`}`;
|
|
190
229
|
if (config.roots.length === 0) {
|
|
191
|
-
lines.push(` (
|
|
230
|
+
lines.push(` (not set; the directories the client shares are in scope instead)`);
|
|
192
231
|
}
|
|
193
232
|
else {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
233
|
+
lines.push(...config.roots.map(show));
|
|
234
|
+
}
|
|
235
|
+
lines.push('', `Shared by the client (MCP roots)${config.rootsFrom === 'config' ? `, for relative paths; ${ROOTS_ENV_VAR} limits the scope` : ''}:`);
|
|
236
|
+
if (config.clientRoots.length === 0) {
|
|
237
|
+
lines.push(` (none: ${config.clientRootsProblem ?? 'the client sent an empty list'})`);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
lines.push(...config.clientRoots.map(show));
|
|
197
241
|
}
|
|
198
242
|
lines.push('', `Memory limit: ${config.memoryLimit ?? "not set (PHP's own limit applies)"}`, `Parallel: ${config.maxParallel === null ? 'unknown' : String(config.maxParallel)}`, `Temp directory: ${config.tmpDir === null ? 'unknown' : config.tmpDir}`, `Writing tools: ${config.writesAllowed ? 'on (generate_baseline exists)' : 'off'}`, `PHP: ${config.php ?? describeMissingPhp()}`, `Runners: ${config.runners.length === 0 ? 'none' : config.runners.join(', ')}`);
|
|
199
243
|
if (config.projectDefaults.length > 0) {
|
|
200
244
|
lines.push('', 'Per-project defaults (a tool argument takes precedence):');
|
|
201
|
-
for (const entry of config.projectDefaults)
|
|
245
|
+
for (const entry of config.projectDefaults) {
|
|
202
246
|
lines.push(` ${entry.project}: ${describeDefaults(entry)}`);
|
|
247
|
+
}
|
|
203
248
|
}
|
|
204
249
|
if (config.problems.length > 0) {
|
|
205
250
|
lines.push('', 'Rejected settings:');
|
|
206
|
-
for (const problem of config.problems)
|
|
251
|
+
for (const problem of config.problems) {
|
|
207
252
|
lines.push(`- ${problem}`);
|
|
253
|
+
}
|
|
208
254
|
}
|
|
209
255
|
return lines.join('\n');
|
|
210
256
|
}
|
|
@@ -272,7 +318,7 @@ export function registerDiagnose(server, roots) {
|
|
|
272
318
|
}, async (args, extra) => {
|
|
273
319
|
const begin = Date.now();
|
|
274
320
|
try {
|
|
275
|
-
const resolved = resolveProject(args.project
|
|
321
|
+
const resolved = await roots.resolveProject(args.project);
|
|
276
322
|
log(server, 'debug', { event: 'diagnosis started', project: resolved.path });
|
|
277
323
|
const diagnosis = await diagnose(resolved, {
|
|
278
324
|
...(args.timeoutSeconds === undefined ? {} : { timeoutMs: args.timeoutSeconds * 1000 }),
|
|
@@ -350,13 +396,14 @@ export function registerBaselineSummary(server, roots) {
|
|
|
350
396
|
annotations: readOnly(),
|
|
351
397
|
}, async ({ project, path }) => {
|
|
352
398
|
try {
|
|
353
|
-
const resolved = resolveProject(project
|
|
399
|
+
const resolved = await roots.resolveProject(project);
|
|
354
400
|
const summary = summariseBaseline(resolved);
|
|
355
401
|
const entries = path === undefined || path === '' ? null : baselineEntriesFor(resolved, path);
|
|
356
402
|
const inline = await inlineIgnoresOf(resolved);
|
|
357
403
|
const delen = [renderBaseline(summary), renderInlineIgnores(inline)];
|
|
358
|
-
if (entries !== null)
|
|
404
|
+
if (entries !== null) {
|
|
359
405
|
delen.push(renderEntries(path ?? '', entries));
|
|
406
|
+
}
|
|
360
407
|
return {
|
|
361
408
|
content: [{ type: 'text', text: delen.join('\n\n') }],
|
|
362
409
|
structuredContent: { ...summary, entries, ...inline },
|
|
@@ -377,8 +424,9 @@ async function inlineIgnoresOf(project) {
|
|
|
377
424
|
return { inlineIgnores: await countInlineIgnores(project), inlineIgnoresProblem: null };
|
|
378
425
|
}
|
|
379
426
|
catch (error) {
|
|
380
|
-
if (!(error instanceof GitError))
|
|
427
|
+
if (!(error instanceof GitError)) {
|
|
381
428
|
throw error;
|
|
429
|
+
}
|
|
382
430
|
// Een eigen zin en niet error.message: die is geschreven voor analyse_changed, en raadt
|
|
383
431
|
// "analyse_project met paden" aan dat telt geen inline ignores.
|
|
384
432
|
const waarom = error.reason === 'not_a_git_repository'
|
|
@@ -391,10 +439,12 @@ async function inlineIgnoresOf(project) {
|
|
|
391
439
|
}
|
|
392
440
|
/** De inline ignores als tekst, onder de baseline. */
|
|
393
441
|
function renderInlineIgnores({ inlineIgnores: inline, inlineIgnoresProblem: problem, }) {
|
|
394
|
-
if (inline === null)
|
|
442
|
+
if (inline === null) {
|
|
395
443
|
return `Inline @phpstan-ignore comments were not counted: ${problem ?? 'unknown reason'}`;
|
|
396
|
-
|
|
444
|
+
}
|
|
445
|
+
if (inline.total === 0) {
|
|
397
446
|
return 'No inline @phpstan-ignore comments in the code.';
|
|
447
|
+
}
|
|
398
448
|
const lines = [
|
|
399
449
|
`${String(inline.total)} inline @phpstan-ignore comment(s) in ${String(inline.files)} file(s) counted in all PHP ` +
|
|
400
450
|
'files git knows, also outside the analysed paths. These are hidden too, and a new baseline does not touch them.',
|
|
@@ -415,8 +465,9 @@ function renderInlineIgnores({ inlineIgnores: inline, inlineIgnoresProblem: prob
|
|
|
415
465
|
const MAX_PATTERN_CHARS = 200;
|
|
416
466
|
/** De baseline-regels voor één bestand, als tekst. */
|
|
417
467
|
function renderEntries(path, entries) {
|
|
418
|
-
if (entries.length === 0)
|
|
468
|
+
if (entries.length === 0) {
|
|
419
469
|
return `No baseline entries for ${path}.`;
|
|
470
|
+
}
|
|
420
471
|
const kort = (message) => message === null ? '' : message.length <= MAX_PATTERN_CHARS ? ` ${message}` : ` ${message.slice(0, MAX_PATTERN_CHARS)}…`;
|
|
421
472
|
return [
|
|
422
473
|
`${String(entries.length)} baseline entr${entries.length === 1 ? 'y' : 'ies'} for ${path}:`,
|
|
@@ -492,7 +543,7 @@ export function registerUnmatchedIgnores(server, roots) {
|
|
|
492
543
|
}, async (args, extra) => {
|
|
493
544
|
const begin = Date.now();
|
|
494
545
|
try {
|
|
495
|
-
const resolved = resolveProject(args.project
|
|
546
|
+
const resolved = await roots.resolveProject(args.project);
|
|
496
547
|
log(server, 'debug', { event: 'checking ignore rules', project: resolved.path });
|
|
497
548
|
const report = await findUnmatchedIgnores(resolved, {
|
|
498
549
|
...(args.memoryLimit === undefined ? {} : { memoryLimit: args.memoryLimit }),
|
|
@@ -570,7 +621,7 @@ export function registerInspectType(server, roots) {
|
|
|
570
621
|
}, async (args, extra) => {
|
|
571
622
|
const begin = Date.now();
|
|
572
623
|
try {
|
|
573
|
-
const resolved = resolveProject(args.project
|
|
624
|
+
const resolved = await roots.resolveProject(args.project);
|
|
574
625
|
log(server, 'debug', { event: 'type inspection started', project: resolved.path });
|
|
575
626
|
const report = await inspectType(resolved, { path: args.path, line: args.line, expressions: args.expressions }, { ...common(resolved, args), signal: extra.signal });
|
|
576
627
|
log(server, 'info', {
|