phpstan-mcp-mx 0.10.1 → 0.11.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 +68 -0
- package/dist/baseline.d.ts +4 -1
- package/dist/baseline.js +5 -1
- package/dist/baseline.js.map +1 -1
- package/dist/changed.d.ts +4 -1
- package/dist/changed.js +13 -3
- package/dist/changed.js.map +1 -1
- package/dist/failure.d.ts +37 -0
- package/dist/failure.js +16 -0
- package/dist/failure.js.map +1 -0
- package/dist/phpstan/error.d.ts +4 -1
- package/dist/phpstan/error.js +5 -1
- package/dist/phpstan/error.js.map +1 -1
- package/dist/phpstan/output.d.ts +13 -2
- package/dist/phpstan/output.js +69 -7
- package/dist/phpstan/output.js.map +1 -1
- package/dist/phpstan.js +109 -23
- package/dist/phpstan.js.map +1 -1
- package/dist/project.d.ts +6 -1
- package/dist/project.js +23 -8
- package/dist/project.js.map +1 -1
- package/dist/report.d.ts +6 -0
- package/dist/report.js +6 -0
- package/dist/report.js.map +1 -1
- package/dist/runner.d.ts +42 -0
- package/dist/runner.js +87 -0
- package/dist/runner.js.map +1 -0
- package/dist/tmpdir.d.ts +4 -1
- package/dist/tmpdir.js +5 -1
- package/dist/tmpdir.js.map +1 -1
- package/dist/tools/inspect.js +7 -2
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/shared.d.ts +14 -2
- package/dist/tools/shared.js +39 -14
- package/dist/tools/shared.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/phpstan.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PhpstanError } from './phpstan/error.js';
|
|
2
|
+
import { naarHost, naarOmgeving, phpstanIn, runnerFor } from './runner.js';
|
|
2
3
|
import { collectWarnings, condenseDetails, toResult, tryParse } from './phpstan/output.js';
|
|
3
4
|
import { execute } from './phpstan/process.js';
|
|
4
5
|
import { enqueue, throwIfAborted, withSlot } from './phpstan/queue.js';
|
|
@@ -66,11 +67,48 @@ export async function generateBaseline(project, options) {
|
|
|
66
67
|
return { project: project.path, file: options.file, errors: Number(match[1]), output };
|
|
67
68
|
}));
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Wat er gestart wordt en waar PHPStan dan staat.
|
|
72
|
+
*
|
|
73
|
+
* Zonder runner is dat gewoon `vendor/bin/phpstan` op de host. Met runner draait het
|
|
74
|
+
* commando van de gebruiker ervóór en staat PHPStan op het pad binnen díe omgeving —
|
|
75
|
+
* dan is de host-check ook niet meer zinnig, want daar hoeft geen vendor/ te staan.
|
|
76
|
+
*/
|
|
77
|
+
function planUitvoering(project) {
|
|
78
|
+
const runner = runnerFor(project.path);
|
|
79
|
+
if (runner === null) {
|
|
80
|
+
return { file: requireBinary(project), prefix: [], phpstan: '', runner: null };
|
|
81
|
+
}
|
|
82
|
+
const [file, ...prefix] = runner.command;
|
|
83
|
+
return { file: file, prefix, phpstan: phpstanIn(runner), runner };
|
|
84
|
+
}
|
|
85
|
+
/** Zet de argumenten die paden bevatten om naar de omgeving van de runner. */
|
|
86
|
+
function vertaalArgs(args, project, runner) {
|
|
87
|
+
return args.map((arg) => {
|
|
88
|
+
if (arg.startsWith('--configuration=')) {
|
|
89
|
+
return `--configuration=${naarOmgeving(runner, project, arg.slice('--configuration='.length))}`;
|
|
90
|
+
}
|
|
91
|
+
if (arg.startsWith('--generate-baseline=')) {
|
|
92
|
+
return `--generate-baseline=${naarOmgeving(runner, project, arg.slice('--generate-baseline='.length))}`;
|
|
93
|
+
}
|
|
94
|
+
return arg.startsWith('-') ? arg : naarOmgeving(runner, project, arg);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/** Zet de paden in een uitslag terug naar de host, zodat ze te openen zijn. */
|
|
98
|
+
function vertaalResultaat(result, project, runner) {
|
|
99
|
+
return {
|
|
100
|
+
...result,
|
|
101
|
+
findings: result.findings.map((finding) => ({
|
|
102
|
+
...finding,
|
|
103
|
+
file: naarHost(runner, project, finding.file),
|
|
104
|
+
})),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
69
107
|
/** Weigert een project zonder PHPStan met de melding die zegt wat er wél kan. */
|
|
70
108
|
function requireBinary(project) {
|
|
71
109
|
if (project.binary === null) {
|
|
72
110
|
throw new PhpstanError(`PHPStan is niet geïnstalleerd in ${project.path} (vendor/bin/phpstan ontbreekt). ` +
|
|
73
|
-
'Draai daar eerst `composer install`.');
|
|
111
|
+
'Draai daar eerst `composer install`.', 'phpstan_missing', { hint: 'Draai `composer install` in dit project.' });
|
|
74
112
|
}
|
|
75
113
|
return project.binary;
|
|
76
114
|
}
|
|
@@ -116,19 +154,26 @@ export async function diagnose(project, options = {}) {
|
|
|
116
154
|
* overheen. Verschillende projecten draaien wél parallel.
|
|
117
155
|
*/
|
|
118
156
|
export async function analyse(project, options = {}) {
|
|
119
|
-
//
|
|
120
|
-
const installed = {
|
|
157
|
+
// Met een runner staat PHPStan in een andere omgeving; dan zegt de host-check niets.
|
|
158
|
+
const installed = {
|
|
159
|
+
...project,
|
|
160
|
+
binary: runnerFor(project.path) === null ? requireBinary(project) : (project.binary ?? ''),
|
|
161
|
+
};
|
|
121
162
|
// Vóór de queue: een verzoek dat al afgebroken is hoeft niet eens in de rij.
|
|
122
163
|
throwIfAborted(installed.path, options.signal);
|
|
123
164
|
return enqueue(installed.path, () => withSlot(() => run(installed, options)));
|
|
124
165
|
}
|
|
125
166
|
async function run(project, options) {
|
|
126
|
-
const
|
|
167
|
+
const plan = planUitvoering(project);
|
|
168
|
+
const ruweArgs = buildArgs(project, options);
|
|
169
|
+
const args = plan.runner === null
|
|
170
|
+
? ruweArgs
|
|
171
|
+
: [...plan.prefix, plan.phpstan, ...vertaalArgs(ruweArgs, project.path, plan.runner)];
|
|
127
172
|
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
128
173
|
// Nog een keer, want tussen de queue, het slot en dit punt kan er tijd zitten:
|
|
129
174
|
// PHPStan starten voor een verzoek dat niemand meer wil is pure verspilling.
|
|
130
175
|
throwIfAborted(project.path, options.signal);
|
|
131
|
-
const execution = await execute(
|
|
176
|
+
const execution = await execute(plan.file, args, project.path, timeoutMs, options.signal);
|
|
132
177
|
if (execution.spawnError !== null) {
|
|
133
178
|
throw new PhpstanError(`PHPStan kon niet gestart worden in ${project.path}: ${execution.spawnError.message}`);
|
|
134
179
|
}
|
|
@@ -136,15 +181,20 @@ async function run(project, options) {
|
|
|
136
181
|
throw new PhpstanError(execution.reason === 'geannuleerd'
|
|
137
182
|
? `De analyse van ${project.path} is afgebroken omdat het verzoek geannuleerd is.`
|
|
138
183
|
: `De analyse van ${project.path} is na ${Math.round(timeoutMs / 1000)}s afgebroken ` +
|
|
139
|
-
`(signaal ${execution.signal}). Analyseer een kleiner deel van het project, of verhoog timeoutMs
|
|
184
|
+
`(signaal ${execution.signal}). Analyseer een kleiner deel van het project, of verhoog timeoutMs.`, execution.reason === 'geannuleerd' ? 'cancelled' : 'timeout', execution.reason === 'geannuleerd'
|
|
185
|
+
? {}
|
|
186
|
+
: { hint: 'Analyseer een kleiner deel, of verhoog timeoutMs.' });
|
|
140
187
|
}
|
|
141
188
|
// Eerst proberen te parsen, pas daarna naar de exit code kijken: PHPStan geeft
|
|
142
189
|
// ook exit code 1 als het gewoon fouten gevonden heeft, en meldt configuratie-
|
|
143
190
|
// problemen ín de JSON. De exit code alleen is dus geen betrouwbaar signaal.
|
|
144
191
|
const parsed = tryParse(execution.stdout);
|
|
145
|
-
if (parsed !== null)
|
|
146
|
-
|
|
147
|
-
|
|
192
|
+
if (parsed !== null) {
|
|
193
|
+
const result = toResult(project.path, parsed, collectWarnings(execution.stderr));
|
|
194
|
+
return plan.runner === null ? result : vertaalResultaat(result, project.path, plan.runner);
|
|
195
|
+
}
|
|
196
|
+
const mislukt = describeFailure(project, execution);
|
|
197
|
+
throw new PhpstanError(mislukt.message, mislukt.reason, mislukt.details);
|
|
148
198
|
}
|
|
149
199
|
/**
|
|
150
200
|
* Leest de standaard geheugenlimiet uit de omgeving. Een onbruikbare waarde wordt
|
|
@@ -209,38 +259,74 @@ function targets(project, options) {
|
|
|
209
259
|
// duidelijke melding beter dan PHPStans eigen usage-tekst.
|
|
210
260
|
const paths = options.paths ?? [];
|
|
211
261
|
if (paths.length === 0 && project.config === null) {
|
|
212
|
-
throw new PhpstanError(`${project.path} heeft geen phpstan.neon(.dist). Geef expliciet paths mee, of maak een config aan
|
|
262
|
+
throw new PhpstanError(`${project.path} heeft geen phpstan.neon(.dist). Geef expliciet paths mee, of maak een config aan.`, 'config_missing', { hint: 'Geef paths mee, of maak een phpstan.neon aan in het project.' });
|
|
213
263
|
}
|
|
214
264
|
return paths;
|
|
215
265
|
}
|
|
216
266
|
/** Vertaalt een run die geen bruikbare JSON opleverde naar iets waar je wat mee kunt. */
|
|
267
|
+
/**
|
|
268
|
+
* Vertaalt een run die geen bruikbare JSON opleverde naar een melding én een reden.
|
|
269
|
+
*
|
|
270
|
+
* De reden is wat een aanroeper nodig heeft om zélf te herstellen; de tekst is voor
|
|
271
|
+
* wie meeleest. Beide, niet het één in plaats van het ander.
|
|
272
|
+
*/
|
|
217
273
|
function describeFailure(project, execution) {
|
|
218
274
|
const details = condenseDetails(execution.stderr.trim() || execution.stdout.trim());
|
|
275
|
+
const gemeen = { exitCode: execution.code, ...oorzaakUit(details) };
|
|
219
276
|
// "Invalid memory limit format" bevat óók "memory limit", maar is een afgekeurde
|
|
220
277
|
// waarde en geen volgelopen geheugen. Eerst afvangen, anders krijgt het model de
|
|
221
278
|
// raad een limiet mee te geven die het net al meegaf.
|
|
222
279
|
if (/invalid memory limit/i.test(details)) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
details
|
|
280
|
+
const hint = `Controleer memoryLimit of ${MEMORY_LIMIT_ENV_VAR}.`;
|
|
281
|
+
return {
|
|
282
|
+
message: `PHPStan accepteerde de meegegeven geheugenlimiet niet in ${project.path}. ${hint}\n\n${details}`,
|
|
283
|
+
reason: 'invalid_setting',
|
|
284
|
+
details: { ...gemeen, hint },
|
|
285
|
+
};
|
|
226
286
|
}
|
|
227
287
|
// PHPStan meldt dit op twee manieren: PHP's eigen "Allowed memory size ...
|
|
228
288
|
// exhausted", en PHPStans eigen "reached configured PHP memory limit: 128M".
|
|
229
289
|
if (/allowed memory size|memory[_ ]limit/i.test(details)) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
details
|
|
290
|
+
const hint = 'Geef memoryLimit mee (bijv. "1G") of analyseer een kleiner deel.';
|
|
291
|
+
return {
|
|
292
|
+
message: `PHPStan liep in ${project.path} tegen de PHP-geheugenlimiet aan. ${hint}\n\n${details}`,
|
|
293
|
+
reason: 'memory_limit',
|
|
294
|
+
details: { ...gemeen, hint },
|
|
295
|
+
};
|
|
233
296
|
}
|
|
234
297
|
// Bij een mislukte bootstrap is diagnose_project de tool die het antwoord wél
|
|
235
298
|
// compleet oplevert — dezelfde uitvoer, maar in één proces en niet afgekapt.
|
|
236
299
|
// Zonder deze verwijzing is de betere tool onvindbaar op het moment dat je hem
|
|
237
300
|
// nodig hebt.
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
301
|
+
const bootstrap = /bootstrap failed|unable to bootstrap/i.test(details);
|
|
302
|
+
const hint = bootstrap
|
|
303
|
+
? 'Draai diagnose_project op dit project: dat laat de PHP-versie, de extensies en de ' +
|
|
304
|
+
'configs zien die meedoen, en die uitvoer wordt niet afgekapt. Start de applicatie ' +
|
|
305
|
+
'niet in deze omgeving, dan is een omgeving waar dat wél kan de volgende stap.'
|
|
306
|
+
: 'Draai diagnose_project als onduidelijk is waarom dit project zich anders gedraagt.';
|
|
307
|
+
return {
|
|
308
|
+
message: `PHPStan gaf geen bruikbare JSON terug in ${project.path} (exit code ${execution.code ?? '?'}).\n\n` +
|
|
309
|
+
(details === '' ? 'Geen output op stdout of stderr.' : details) +
|
|
310
|
+
`\n\n${hint}`,
|
|
311
|
+
reason: bootstrap ? 'bootstrap_failed' : 'unusable_output',
|
|
312
|
+
details: { ...gemeen, hint },
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Haalt de oorzaakregel en het eerste stackframe uit de uitvoer. Die twee zeggen
|
|
317
|
+
* samen wát er misging en wáár het vandaan kwam — precies wat je anders zelf uit
|
|
318
|
+
* de blob moet vissen.
|
|
319
|
+
*/
|
|
320
|
+
function oorzaakUit(details) {
|
|
321
|
+
const regels = details.split('\n');
|
|
322
|
+
const oorzaak = regels.find((regel) => /^\s*(Error|Fatal error|PHP Fatal error):/i.test(regel));
|
|
323
|
+
if (oorzaak === undefined)
|
|
324
|
+
return {};
|
|
325
|
+
const frame = regels.find((regel) => /^#0\s/.test(regel.trim()));
|
|
326
|
+
const cause = oorzaak.replace(/^\s*(Error|Fatal error|PHP Fatal error):\s*/i, '').trim();
|
|
327
|
+
return {
|
|
328
|
+
cause,
|
|
329
|
+
...(frame === undefined ? {} : { causeOrigin: frame.trim().replace(/^#0\s+/, '').split(':')[0] }),
|
|
330
|
+
};
|
|
245
331
|
}
|
|
246
332
|
//# sourceMappingURL=phpstan.js.map
|
package/dist/phpstan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phpstan.js","sourceRoot":"","sources":["../src/phpstan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"phpstan.js","sourceRoot":"","sources":["../src/phpstan.ts"],"names":[],"mappings":"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"}
|
package/dist/project.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { FailureDetails, FailureReason } from './failure.js';
|
|
2
|
+
import { ToolFailure } from './failure.js';
|
|
1
3
|
import type { Root } from './roots.js';
|
|
2
4
|
/** Een project dat door de whitelist is gekomen, met wat erin gevonden is. */
|
|
3
5
|
export interface ResolvedProject {
|
|
@@ -17,9 +19,12 @@ export interface ProjectSummary {
|
|
|
17
19
|
readonly config: string | null;
|
|
18
20
|
/** Of `analyse_changed` hier bruikbaar is. */
|
|
19
21
|
readonly hasGit: boolean;
|
|
22
|
+
/** Waar PHPStan hier draait, of null als dat gewoon op de host is. */
|
|
23
|
+
readonly runner: string | null;
|
|
20
24
|
}
|
|
21
25
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
22
|
-
export declare class ProjectError extends
|
|
26
|
+
export declare class ProjectError extends ToolFailure {
|
|
27
|
+
constructor(message: string, reason?: FailureReason, details?: FailureDetails);
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
25
30
|
* Zet een `project`-argument om in een projectroot die binnen de whitelist valt.
|
package/dist/project.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { ToolFailure } from './failure.js';
|
|
1
2
|
import { readdirSync, realpathSync, statSync } from 'node:fs';
|
|
2
3
|
import { basename, dirname, isAbsolute, join, relative } from 'node:path';
|
|
3
4
|
import { isUsable, ROOTS_ENV_VAR } from './roots.js';
|
|
5
|
+
import { runnerFor } from './runner.js';
|
|
4
6
|
/** Volgorde waarin PHPStan zelf zijn configuratie zoekt. */
|
|
5
7
|
const CONFIG_NAMES = ['phpstan.neon', 'phpstan.neon.dist'];
|
|
6
8
|
/** Pad naar het PHPStan-binary binnen een project, relatief aan de projectroot. */
|
|
@@ -8,7 +10,10 @@ const BINARY_PATH = join('vendor', 'bin', 'phpstan');
|
|
|
8
10
|
/** Mappen die nooit een PHP-project zijn en die we bij het zoeken overslaan. */
|
|
9
11
|
const SKIP_DIRS = new Set(['vendor', 'node_modules', 'storage', 'public']);
|
|
10
12
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
11
|
-
export class ProjectError extends
|
|
13
|
+
export class ProjectError extends ToolFailure {
|
|
14
|
+
constructor(message, reason = 'project_not_found', details = {}) {
|
|
15
|
+
super(message, reason, details);
|
|
16
|
+
}
|
|
12
17
|
}
|
|
13
18
|
/**
|
|
14
19
|
* Zet een `project`-argument om in een projectroot die binnen de whitelist valt.
|
|
@@ -18,10 +23,10 @@ export function resolveProject(argument, roots) {
|
|
|
18
23
|
const usable = roots.filter(isUsable);
|
|
19
24
|
if (usable.length === 0) {
|
|
20
25
|
throw new ProjectError(`Deze server heeft geen bruikbare projectmappen. Zet ${ROOTS_ENV_VAR} in de ` +
|
|
21
|
-
'configuratie van de MCP-server op de absolute paden die geanalyseerd mogen worden.');
|
|
26
|
+
'configuratie van de MCP-server op de absolute paden die geanalyseerd mogen worden.', 'no_roots_configured');
|
|
22
27
|
}
|
|
23
28
|
if (!isAbsolute(argument)) {
|
|
24
|
-
throw new ProjectError(`"${argument}" is geen absoluut pad. Geef het volledige pad naar de projectmap
|
|
29
|
+
throw new ProjectError(`"${argument}" is geen absoluut pad. Geef het volledige pad naar de projectmap.`, 'project_not_found');
|
|
25
30
|
}
|
|
26
31
|
let path;
|
|
27
32
|
try {
|
|
@@ -39,7 +44,7 @@ export function resolveProject(argument, roots) {
|
|
|
39
44
|
// een ".."-pad of een symlink naar buiten de whitelist er alsnog doorheen.
|
|
40
45
|
if (!usable.some((root) => contains(root.path, path))) {
|
|
41
46
|
const allowed = usable.map((root) => ` - ${root.path}`).join('\n');
|
|
42
|
-
throw new ProjectError(`"${path}" valt buiten de toegestane projectmappen. Toegestaan is alles onder:\n${allowed}
|
|
47
|
+
throw new ProjectError(`"${path}" valt buiten de toegestane projectmappen. Toegestaan is alles onder:\n${allowed}`, 'project_outside_roots');
|
|
43
48
|
}
|
|
44
49
|
return describeProject(path);
|
|
45
50
|
}
|
|
@@ -71,12 +76,12 @@ export function resolveWithin(project, argument) {
|
|
|
71
76
|
path = realpathSync.native(candidate);
|
|
72
77
|
}
|
|
73
78
|
catch {
|
|
74
|
-
throw new ProjectError(`"${argument}" bestaat niet in ${project.path}
|
|
79
|
+
throw new ProjectError(`"${argument}" bestaat niet in ${project.path}.`, 'path_not_found');
|
|
75
80
|
}
|
|
76
81
|
// Dezelfde volgorde als in resolveProject: pas ná realpath vergelijken, anders
|
|
77
82
|
// glipt een ".."-pad of een symlink er alsnog doorheen.
|
|
78
83
|
if (!contains(project.path, path)) {
|
|
79
|
-
throw new ProjectError(`"${argument}" ligt buiten het project ${project.path}
|
|
84
|
+
throw new ProjectError(`"${argument}" ligt buiten het project ${project.path}.`, 'path_outside_project');
|
|
80
85
|
}
|
|
81
86
|
return path;
|
|
82
87
|
}
|
|
@@ -101,7 +106,7 @@ export function resolveNewWithin(project, argument) {
|
|
|
101
106
|
resolvedParent = realpathSync.native(parent);
|
|
102
107
|
}
|
|
103
108
|
catch {
|
|
104
|
-
throw new ProjectError(`De map voor "${argument}" bestaat niet in ${project.path}
|
|
109
|
+
throw new ProjectError(`De map voor "${argument}" bestaat niet in ${project.path}.`, 'path_not_found');
|
|
105
110
|
}
|
|
106
111
|
if (!contains(project.path, resolvedParent)) {
|
|
107
112
|
throw new ProjectError(`"${argument}" ligt buiten het project ${project.path}.`);
|
|
@@ -143,7 +148,17 @@ function collectProjects(path, root, depth, found) {
|
|
|
143
148
|
}
|
|
144
149
|
function summarise(path, root) {
|
|
145
150
|
const { binary, config } = describeProject(path);
|
|
146
|
-
|
|
151
|
+
// De runner staat erbij omdat hij verklaart waaróm een project zonder vendor/ toch
|
|
152
|
+
// analyseerbaar is — en waar het dan gebeurt.
|
|
153
|
+
const runner = runnerFor(path);
|
|
154
|
+
return {
|
|
155
|
+
path,
|
|
156
|
+
root,
|
|
157
|
+
hasPhpstan: binary !== null,
|
|
158
|
+
config,
|
|
159
|
+
hasGit: hasGitDir(path),
|
|
160
|
+
runner: runner === null ? null : runner.command.join(' '),
|
|
161
|
+
};
|
|
147
162
|
}
|
|
148
163
|
/**
|
|
149
164
|
* Of dit project onder git staat, zodat `analyse_changed` niet pas bij de aanroep
|
package/dist/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,4DAA4D;AAC5D,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAU,CAAC;AAEpE,mFAAmF;AACnF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAErD,gFAAgF;AAChF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAyB3E,+EAA+E;AAC/E,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,YAAY,OAAe,EAAE,SAAwB,mBAAmB,EAAE,UAA0B,EAAE;QACpG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,KAAa;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,YAAY,CACpB,uDAAuD,aAAa,SAAS;YAC3E,oFAAoF,EACtF,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,YAAY,CACpB,IAAI,QAAQ,oEAAoE,EAChF,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,YAAY,CAAC,IAAI,QAAQ,gBAAgB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY;YAAE,MAAM,KAAK,CAAC;QAC/C,MAAM,IAAI,YAAY,CAAC,IAAI,QAAQ,iBAAiB,CAAC,CAAC;IACxD,CAAC;IAED,+EAA+E;IAC/E,2EAA2E;IAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,IAAI,YAAY,CACpB,IAAI,IAAI,0EAA0E,OAAO,EAAE,EAC3F,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEvC,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACtC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;KACtE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAwB,EAAE,QAAgB;IACtE,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CAAC,qCAAqC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEjF,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,YAAY,CAAC,IAAI,QAAQ,qBAAqB,OAAO,CAAC,IAAI,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC7F,CAAC;IAED,+EAA+E;IAC/E,wDAAwD;IACxD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,YAAY,CAAC,IAAI,QAAQ,6BAA6B,OAAO,CAAC,IAAI,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAwB,EAAE,QAAgB;IACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,YAAY,CAAC,8CAA8C,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAElC,IAAI,cAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,YAAY,CAAC,gBAAgB,QAAQ,qBAAqB,OAAO,CAAC,IAAI,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,YAAY,CAAC,IAAI,QAAQ,6BAA6B,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,QAAQ,GAAqB,EAAE,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,SAAS;QACjC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,KAAuB;IAEvB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO;IAE/B,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY;IAC3C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,mFAAmF;IACnF,8CAA8C;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,UAAU,EAAE,MAAM,KAAK,IAAI;QAC3B,MAAM;QACN,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;QACvB,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,6EAA6E;QAC7E,4EAA4E;QAC5E,8EAA8E;QAC9E,kEAAkE;QAClE,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACnG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,MAAc,EAAE,KAAa;IAC7C,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC"}
|
package/dist/report.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface Report {
|
|
|
48
48
|
* Staat los van generalErrors: dat is PHPStans eigen `errors`-array.
|
|
49
49
|
*/
|
|
50
50
|
readonly warnings: readonly string[];
|
|
51
|
+
/**
|
|
52
|
+
* PHPStans vaste aanwijzingen bij het lezen van bevindingen. Niet begrensd: het is
|
|
53
|
+
* één blok van vaste omvang, en het middenin afkappen leverde precies het halve
|
|
54
|
+
* signaal op dat dit veld moest oplossen.
|
|
55
|
+
*/
|
|
56
|
+
readonly instructions: readonly string[];
|
|
51
57
|
/**
|
|
52
58
|
* Wat déze server erbij te melden heeft, zoals een baseline die meedoet. Apart
|
|
53
59
|
* van `warnings` omdat de herkomst anders is: dat komt van PHPStan, dit niet.
|
package/dist/report.js
CHANGED
|
@@ -38,6 +38,7 @@ export function buildReport(result, window = {}, notices = []) {
|
|
|
38
38
|
totals: result.totals,
|
|
39
39
|
generalErrors: generalErrors.kept,
|
|
40
40
|
warnings: warnings.kept,
|
|
41
|
+
instructions: [...result.instructions],
|
|
41
42
|
notices: [...notices],
|
|
42
43
|
omitted: { warnings: warnings.omitted, generalErrors: generalErrors.omitted },
|
|
43
44
|
summary: summarise(all),
|
|
@@ -130,6 +131,11 @@ export function renderReport(report) {
|
|
|
130
131
|
if (finding.tip !== null)
|
|
131
132
|
lines.push(` tip: ${finding.tip}`);
|
|
132
133
|
}
|
|
134
|
+
if (report.instructions.length > 0) {
|
|
135
|
+
lines.push('', 'PHPStan zegt hierbij:');
|
|
136
|
+
for (const regel of report.instructions)
|
|
137
|
+
lines.push(` ${regel}`);
|
|
138
|
+
}
|
|
133
139
|
if (report.page.hasMore) {
|
|
134
140
|
lines.push('', `Nog ${report.page.total - to} bevinding(en). Roep dezelfde tool opnieuw aan met ` +
|
|
135
141
|
`offset=${to} voor de rest.`);
|
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAE7B,8DAA8D;AAC9D,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAE/B,oFAAoF;AACpF,MAAM,iBAAiB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { FailureDetails, FailureReason } from './failure.js';
|
|
2
|
+
import { ToolFailure } from './failure.js';
|
|
3
|
+
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
4
|
+
export declare class RunnerError extends ToolFailure {
|
|
5
|
+
constructor(message: string, reason?: FailureReason, details?: FailureDetails);
|
|
6
|
+
}
|
|
7
|
+
/** Env-variabele met de uitvoeringsomgeving per project, als JSON. */
|
|
8
|
+
export declare const RUNNERS_ENV_VAR = "PHPSTAN_MCP_RUNNERS";
|
|
9
|
+
/**
|
|
10
|
+
* Waar PHPStan voor dit project gedraaid wordt.
|
|
11
|
+
*
|
|
12
|
+
* `command` is het commando dat ervóór komt, bijvoorbeeld
|
|
13
|
+
* `["docker", "exec", "-w", "/var/www/html", "lease-admin-app"]`. `workdir` is het
|
|
14
|
+
* pad waarop de projectmap dáár te vinden is; dat is wat de paden vertaalt, zodat
|
|
15
|
+
* bevindingen bruikbaar blijven voor wie op de host kijkt.
|
|
16
|
+
*/
|
|
17
|
+
export interface Runner {
|
|
18
|
+
readonly command: readonly string[];
|
|
19
|
+
readonly workdir: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Leest de runners uit de omgeving.
|
|
23
|
+
*
|
|
24
|
+
* **De aanroeper kan hier niets aan bijdragen.** Net als de roots komt dit uit de
|
|
25
|
+
* serverconfiguratie: een model kiest alleen een project, en of daar een runner bij
|
|
26
|
+
* hoort staat al vast. Een commando dat uit een tool-argument zou komen, zou de hele
|
|
27
|
+
* whitelist zinloos maken — dan bepaalt de aanroeper immers wat er uitgevoerd wordt.
|
|
28
|
+
*/
|
|
29
|
+
export declare function loadRunners(env?: NodeJS.ProcessEnv): Map<string, Runner>;
|
|
30
|
+
/** De runner voor dit project, of null als het gewoon op de host draait. */
|
|
31
|
+
export declare function runnerFor(project: string, env?: NodeJS.ProcessEnv): Runner | null;
|
|
32
|
+
/** Pad op de host → pad in de omgeving van de runner. */
|
|
33
|
+
export declare function naarOmgeving(runner: Runner, project: string, pad: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Pad in de omgeving van de runner → pad op de host.
|
|
36
|
+
*
|
|
37
|
+
* Zonder deze stap rapporteert PHPStan `/var/www/html/app/User.php` en kan niemand
|
|
38
|
+
* dat bestand openen: dat pad bestaat alleen binnen de container.
|
|
39
|
+
*/
|
|
40
|
+
export declare function naarHost(runner: Runner, project: string, pad: string): string;
|
|
41
|
+
/** Het pad naar het PHPStan-binary binnen de omgeving van de runner. */
|
|
42
|
+
export declare function phpstanIn(runner: Runner): string;
|
package/dist/runner.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { isAbsolute, join } from 'node:path';
|
|
2
|
+
import { ToolFailure } from './failure.js';
|
|
3
|
+
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
4
|
+
export class RunnerError extends ToolFailure {
|
|
5
|
+
constructor(message, reason = 'invalid_setting', details = {}) {
|
|
6
|
+
super(message, reason, details);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/** Env-variabele met de uitvoeringsomgeving per project, als JSON. */
|
|
10
|
+
export const RUNNERS_ENV_VAR = 'PHPSTAN_MCP_RUNNERS';
|
|
11
|
+
/**
|
|
12
|
+
* Leest de runners uit de omgeving.
|
|
13
|
+
*
|
|
14
|
+
* **De aanroeper kan hier niets aan bijdragen.** Net als de roots komt dit uit de
|
|
15
|
+
* serverconfiguratie: een model kiest alleen een project, en of daar een runner bij
|
|
16
|
+
* hoort staat al vast. Een commando dat uit een tool-argument zou komen, zou de hele
|
|
17
|
+
* whitelist zinloos maken — dan bepaalt de aanroeper immers wat er uitgevoerd wordt.
|
|
18
|
+
*/
|
|
19
|
+
export function loadRunners(env = process.env) {
|
|
20
|
+
const ruw = env[RUNNERS_ENV_VAR]?.trim();
|
|
21
|
+
if (ruw === undefined || ruw === '')
|
|
22
|
+
return new Map();
|
|
23
|
+
let ontleed;
|
|
24
|
+
try {
|
|
25
|
+
ontleed = JSON.parse(ruw);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
throw new RunnerError(`${RUNNERS_ENV_VAR} bevat geen geldige JSON. Verwacht wordt een object met per ` +
|
|
29
|
+
'projectpad een {"command": [...], "workdir": "..."}.');
|
|
30
|
+
}
|
|
31
|
+
if (typeof ontleed !== 'object' || ontleed === null || Array.isArray(ontleed)) {
|
|
32
|
+
throw new RunnerError(`${RUNNERS_ENV_VAR} moet een object zijn met een projectpad per sleutel.`);
|
|
33
|
+
}
|
|
34
|
+
const runners = new Map();
|
|
35
|
+
for (const [pad, waarde] of Object.entries(ontleed)) {
|
|
36
|
+
runners.set(pad, controleer(pad, waarde));
|
|
37
|
+
}
|
|
38
|
+
return runners;
|
|
39
|
+
}
|
|
40
|
+
/** Weigert een onvolledige runner met een melding die zegt wat er wél moet staan. */
|
|
41
|
+
function controleer(pad, waarde) {
|
|
42
|
+
if (!isAbsolute(pad)) {
|
|
43
|
+
throw new RunnerError(`${RUNNERS_ENV_VAR}: "${pad}" is geen absoluut projectpad.`);
|
|
44
|
+
}
|
|
45
|
+
const obj = waarde;
|
|
46
|
+
const command = obj.command;
|
|
47
|
+
const workdir = obj.workdir;
|
|
48
|
+
if (!Array.isArray(command) || command.length === 0 || !command.every((deel) => typeof deel === 'string')) {
|
|
49
|
+
throw new RunnerError(`${RUNNERS_ENV_VAR}: "${pad}" mist een bruikbare "command"; verwacht een niet-lege lijst ` +
|
|
50
|
+
'tekst, bijvoorbeeld ["docker", "exec", "-w", "/var/www/html", "mijn-app"].');
|
|
51
|
+
}
|
|
52
|
+
if (typeof workdir !== 'string' || !isAbsolute(workdir)) {
|
|
53
|
+
throw new RunnerError(`${RUNNERS_ENV_VAR}: "${pad}" mist een absolute "workdir" — het pad waarop de projectmap ` +
|
|
54
|
+
'in die omgeving staat. Zonder dat zijn de gerapporteerde bestandspaden onbruikbaar.');
|
|
55
|
+
}
|
|
56
|
+
return { command, workdir };
|
|
57
|
+
}
|
|
58
|
+
/** De runner voor dit project, of null als het gewoon op de host draait. */
|
|
59
|
+
export function runnerFor(project, env = process.env) {
|
|
60
|
+
return loadRunners(env).get(project) ?? null;
|
|
61
|
+
}
|
|
62
|
+
/** Pad op de host → pad in de omgeving van de runner. */
|
|
63
|
+
export function naarOmgeving(runner, project, pad) {
|
|
64
|
+
if (pad === project)
|
|
65
|
+
return runner.workdir;
|
|
66
|
+
if (!pad.startsWith(`${project}/`))
|
|
67
|
+
return pad;
|
|
68
|
+
return join(runner.workdir, pad.slice(project.length + 1));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Pad in de omgeving van de runner → pad op de host.
|
|
72
|
+
*
|
|
73
|
+
* Zonder deze stap rapporteert PHPStan `/var/www/html/app/User.php` en kan niemand
|
|
74
|
+
* dat bestand openen: dat pad bestaat alleen binnen de container.
|
|
75
|
+
*/
|
|
76
|
+
export function naarHost(runner, project, pad) {
|
|
77
|
+
if (pad === runner.workdir)
|
|
78
|
+
return project;
|
|
79
|
+
if (!pad.startsWith(`${runner.workdir}/`))
|
|
80
|
+
return pad;
|
|
81
|
+
return join(project, pad.slice(runner.workdir.length + 1));
|
|
82
|
+
}
|
|
83
|
+
/** Het pad naar het PHPStan-binary binnen de omgeving van de runner. */
|
|
84
|
+
export function phpstanIn(runner) {
|
|
85
|
+
return join(runner.workdir, 'vendor', 'bin', 'phpstan');
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/tmpdir.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import type { FailureDetails, FailureReason } from './failure.js';
|
|
2
|
+
import { ToolFailure } from './failure.js';
|
|
1
3
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
2
|
-
export declare class TmpDirError extends
|
|
4
|
+
export declare class TmpDirError extends ToolFailure {
|
|
5
|
+
constructor(message: string, reason?: FailureReason, details?: FailureDetails);
|
|
3
6
|
}
|
|
4
7
|
/** Env-variabele die bepaalt waar PHPStan zijn tijdelijke bestanden neerzet. */
|
|
5
8
|
export declare const TMPDIR_ENV_VAR = "PHPSTAN_MCP_TMPDIR";
|
package/dist/tmpdir.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { ToolFailure } from './failure.js';
|
|
1
2
|
import { createHash } from 'node:crypto';
|
|
2
3
|
import { mkdirSync } from 'node:fs';
|
|
3
4
|
import { tmpdir } from 'node:os';
|
|
4
5
|
import { basename, join } from 'node:path';
|
|
5
6
|
/** Fout die als bruikbare melding naar het model teruggaat, niet als crash. */
|
|
6
|
-
export class TmpDirError extends
|
|
7
|
+
export class TmpDirError extends ToolFailure {
|
|
8
|
+
constructor(message, reason = 'invalid_setting', details = {}) {
|
|
9
|
+
super(message, reason, details);
|
|
10
|
+
}
|
|
7
11
|
}
|
|
8
12
|
/** Env-variabele die bepaalt waar PHPStan zijn tijdelijke bestanden neerzet. */
|
|
9
13
|
export const TMPDIR_ENV_VAR = 'PHPSTAN_MCP_TMPDIR';
|