phpstan-mcp-mx 0.22.0 → 0.24.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 +24 -0
- package/README.md +142 -19
- package/dist/baseline.d.ts +10 -0
- package/dist/baseline.js +36 -14
- package/dist/baseline.js.map +1 -1
- package/dist/changed.d.ts +17 -0
- package/dist/changed.js +56 -29
- 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 +12 -6
- 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.d.ts +1 -1
- package/dist/failure.js.map +1 -1
- package/dist/history.d.ts +61 -0
- package/dist/history.js +275 -0
- package/dist/history.js.map +1 -0
- 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.d.ts +10 -0
- package/dist/phpstan/process.js +35 -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.d.ts +14 -0
- package/dist/phpstan.js +94 -25
- 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/prune.d.ts +92 -0
- package/dist/prune.js +387 -0
- package/dist/prune.js.map +1 -0
- 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 +9 -7
- package/dist/tools/inspect.js +158 -37
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/prompts.d.ts +3 -3
- package/dist/tools/prompts.js +16 -8
- 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 +8 -3
- package/dist/tools/writes.js +73 -3
- package/dist/tools/writes.js.map +1 -1
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +6 -3
- package/dist/tools.js.map +1 -1
- package/dist/unmatched.d.ts +66 -0
- package/dist/unmatched.js +194 -44
- package/dist/unmatched.js.map +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/prompts.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RootSource } from '../root-source.js';
|
|
3
3
|
/**
|
|
4
4
|
* Hangt de prompts aan de server: werkpatronen die bestaande tools combineren.
|
|
5
5
|
*
|
|
@@ -8,11 +8,11 @@ import type { Root } from '../roots.js';
|
|
|
8
8
|
* alleen als iemand hem kiest. Elke vangrail in deze teksten komt uit een proefrun op
|
|
9
9
|
* een echt project die zonder die zin misging zie fase 15.6 en 16 in het plan.
|
|
10
10
|
*/
|
|
11
|
-
export declare function registerPrompts(server: McpServer, roots:
|
|
11
|
+
export declare function registerPrompts(server: McpServer, roots: RootSource): void;
|
|
12
12
|
/**
|
|
13
13
|
* De projecten binnen de roots die passen bij wat er al getypt is: een prefix op het
|
|
14
14
|
* volledige pad of op de mapnaam, zonder onderscheid in hoofdletters. Elke keer opnieuw
|
|
15
15
|
* ontdekt en niet gecachet net zoals `withSlot` zijn grens elke keer opnieuw leest,
|
|
16
16
|
* zodat een nieuw project meteen meedoet.
|
|
17
17
|
*/
|
|
18
|
-
export declare function suggestProjects(roots:
|
|
18
|
+
export declare function suggestProjects(roots: RootSource, value: string, exclude?: string): Promise<string[]>;
|
package/dist/tools/prompts.js
CHANGED
|
@@ -23,9 +23,9 @@ export function registerPrompts(server, roots) {
|
|
|
23
23
|
* ontdekt en niet gecachet net zoals `withSlot` zijn grens elke keer opnieuw leest,
|
|
24
24
|
* zodat een nieuw project meteen meedoet.
|
|
25
25
|
*/
|
|
26
|
-
export function suggestProjects(roots, value, exclude) {
|
|
26
|
+
export async function suggestProjects(roots, value, exclude) {
|
|
27
27
|
const needle = value.trim().toLowerCase();
|
|
28
|
-
return discoverProjects(roots)
|
|
28
|
+
return discoverProjects((await roots.current()).allowed)
|
|
29
29
|
.map((project) => project.path)
|
|
30
30
|
.filter((path) => path !== exclude)
|
|
31
31
|
.filter((path) => path.toLowerCase().startsWith(needle) || basename(path).toLowerCase().startsWith(needle));
|
|
@@ -48,7 +48,7 @@ function projectArgument(roots, description, exclude) {
|
|
|
48
48
|
const complete = (value, context) => suggestProjects(roots, value ?? '', exclude?.(context?.arguments));
|
|
49
49
|
return completable(completable(z.string(), complete).optional().describe(description), complete);
|
|
50
50
|
}
|
|
51
|
-
const PROJECT_DESCRIPTION = '
|
|
51
|
+
const PROJECT_DESCRIPTION = 'Path to the project root, absolute or relative to your working directory ("."); leave empty to run list_projects first';
|
|
52
52
|
/** De openingszin: het project, of eerst list_projects als er geen is meegegeven. */
|
|
53
53
|
function opening(project, wat) {
|
|
54
54
|
return project === undefined || project === ''
|
|
@@ -224,12 +224,18 @@ function registerBaselinePrompt(server, roots) {
|
|
|
224
224
|
' - patterns without a path (`general`): those come from the ignoreErrors of a',
|
|
225
225
|
' config, often a shared one in vendor/. Do not touch those; a new baseline does',
|
|
226
226
|
' nothing about them.',
|
|
227
|
+
' Next to those, `inline`: `@phpstan-ignore` comments in the code that no longer',
|
|
228
|
+
' suppress anything. Say how many of the inline count from step 1 these are. They',
|
|
229
|
+
' are a code change, not a baseline change; those without an identifier hide the',
|
|
230
|
+
' most.',
|
|
227
231
|
' If `inBaseline` is null, the baseline could not be read: report that and do not',
|
|
228
232
|
' guess. If the tool refuses with `unsupported_with_runner`, the environment where',
|
|
229
233
|
' PHPStan runs has no `sh`: say this step is not possible here and continue with',
|
|
230
234
|
' step 3.',
|
|
231
235
|
'3. `analyse_project` with `limit: 1`. That total is exactly what a new baseline',
|
|
232
|
-
' would hide; say that in so many words.',
|
|
236
|
+
' would hide; say that in so many words. Leave out `ignore.unmatchedLine` and',
|
|
237
|
+
' `ignore.unmatchedIdentifier` from `summary.byIdentifier`: those are the stale',
|
|
238
|
+
' inline ignores from step 2, and PHPStan does not put them in a baseline.',
|
|
233
239
|
'4. Pick the cheapest real reduction: a file with few baseline entries and a kind',
|
|
234
240
|
' that can be fixed at the source, such as `missingType.*`. Which kinds are in',
|
|
235
241
|
' which file is given by `baseline_summary` with `path` set to that file: per',
|
|
@@ -237,11 +243,13 @@ function registerBaselinePrompt(server, roots) {
|
|
|
237
243
|
' no `mixed`, no `@phpstan-ignore`, no cast to silence an error.',
|
|
238
244
|
' Check with `analyse_file` on that file that nothing new appears; the baseline',
|
|
239
245
|
' entries that have become stale because of it can then go.',
|
|
240
|
-
'5. `
|
|
241
|
-
' from step 3
|
|
242
|
-
'
|
|
243
|
-
' write permission, and even then you do not call it yourself: it rewrites a',
|
|
246
|
+
'5. `prune_baseline` removes what step 2 found stale and lowers the counts, and adds',
|
|
247
|
+
' nothing: the findings from step 3 stay reported. It only exists when the server',
|
|
248
|
+
' has write permission, and even then you do not call it yourself: it rewrites a',
|
|
244
249
|
' file that is in git. Suggest it, and let me choose.',
|
|
250
|
+
'6. `generate_baseline` also cleans up, but puts the total from step 3 into the',
|
|
251
|
+
' baseline as well. So only suggest it when that total is zero; if it is not, fix',
|
|
252
|
+
' those findings first. The same holds here: suggest it, do not call it.',
|
|
245
253
|
'',
|
|
246
254
|
'Report: how large the baseline is, how many entries are stale, how many current',
|
|
247
255
|
'findings a new baseline would hide, and which reduction you propose or have',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/shared.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { AnalyseOptions, AnalysisResult } from '../phpstan.js';
|
|
|
4
4
|
import type { ChangedLineCheck, Window } from '../report.js';
|
|
5
5
|
import type { ResolvedProject } from '../project.js';
|
|
6
6
|
import type { RunStore } from '../runs.js';
|
|
7
|
-
import type {
|
|
7
|
+
import type { RootSource } from '../root-source.js';
|
|
8
8
|
import type { FailureDetails, FailureReason } from '../failure.js';
|
|
9
9
|
/** Tekstresultaat waar het model iets aan heeft als er iets misgaat. */
|
|
10
10
|
export type ToolResult = {
|
|
@@ -205,7 +205,7 @@ export declare function log(server: McpServer, level: 'info' | 'debug', data: Re
|
|
|
205
205
|
* Eerder resolveerde analyse_file het project en deed runAnalysis dat daarna nog
|
|
206
206
|
* een keer.
|
|
207
207
|
*/
|
|
208
|
-
export declare function runAnalysis(server: McpServer, roots:
|
|
208
|
+
export declare function runAnalysis(server: McpServer, roots: RootSource, project: string, plan: (resolved: ResolvedProject) => Plan | Promise<Plan>, window: Window, signal: AbortSignal | undefined, reuse: Reuse): Promise<ToolResult>;
|
|
209
209
|
/**
|
|
210
210
|
* Analyseren verandert de broncode niet. PHPStan schrijft wel zijn resultcache weg,
|
|
211
211
|
* maar dat is geen wijziging waar de gebruiker iets van merkt.
|
package/dist/tools/shared.js
CHANGED
|
@@ -3,7 +3,7 @@ import { describeIncludedBaseline } from '../baseline.js';
|
|
|
3
3
|
import { compareRuns } from '../compare.js';
|
|
4
4
|
import { analyse } from '../phpstan.js';
|
|
5
5
|
import { DEFAULT_LIMIT, MAX_LIMIT, buildReport, renderReport } from '../report.js';
|
|
6
|
-
import {
|
|
6
|
+
import { resolveWithin } from '../project.js';
|
|
7
7
|
import { ToolFailure } from '../failure.js';
|
|
8
8
|
/**
|
|
9
9
|
* Nullable veld als `anyOf` in plaats van `type: [..., "null"]`. Zod's `.nullable()`
|
|
@@ -19,7 +19,7 @@ export function nullable(schema) {
|
|
|
19
19
|
}
|
|
20
20
|
export const projectArgument = z
|
|
21
21
|
.string()
|
|
22
|
-
.describe('
|
|
22
|
+
.describe('Path to the project root: absolute as returned by list_projects, or relative to the working directory the client shares ("." for that directory)');
|
|
23
23
|
/** Eén groep uit een vergelijking: dezelfde melding in hetzelfde bestand. */
|
|
24
24
|
const comparedEntryShape = z.object({
|
|
25
25
|
file: z.string(),
|
|
@@ -208,12 +208,13 @@ export async function runAnalysis(server, roots, project, plan, window, signal,
|
|
|
208
208
|
try {
|
|
209
209
|
// Eerst resolven, ook voor een pagina uit een eerder resultaat: de whitelist
|
|
210
210
|
// geldt bij elke aanroep, en de runId moet bij dit project horen.
|
|
211
|
-
const resolved = resolveProject(project
|
|
211
|
+
const resolved = await roots.resolveProject(project);
|
|
212
212
|
let fallback = null;
|
|
213
213
|
if (reuse.runId !== undefined) {
|
|
214
214
|
const stored = reuse.runs.get(reuse.runId, resolved.path, reuse.key);
|
|
215
|
-
if (stored !== null)
|
|
215
|
+
if (stored !== null) {
|
|
216
216
|
return fromStoredRun(server, stored, window, reuse.compareTo);
|
|
217
|
+
}
|
|
217
218
|
// Geen fout: dat kost het model een ronde om te ontdekken wat het toch al kan
|
|
218
219
|
// doen. Wel hardop, want de tellingen kunnen nu afwijken van eerdere pagina's.
|
|
219
220
|
fallback =
|
|
@@ -280,8 +281,9 @@ export async function runAnalysis(server, roots, project, plan, window, signal,
|
|
|
280
281
|
comparison = compareRuns(resolved.path, { result: vóór, scope: null }, { result, scope: null }, { basis: 'base', comparedTo: chosen.before.label, ageSeconds: null });
|
|
281
282
|
}
|
|
282
283
|
catch (error) {
|
|
283
|
-
if (!(error instanceof ToolFailure) || error.reason === 'cancelled')
|
|
284
|
+
if (!(error instanceof ToolFailure) || error.reason === 'cancelled') {
|
|
284
285
|
throw error;
|
|
286
|
+
}
|
|
285
287
|
notices.push(`The project before your change could not be analysed, so what your change introduced cannot be ` +
|
|
286
288
|
`told apart from what was already there: ${error.message.split('\n')[0] ?? ''}`);
|
|
287
289
|
}
|
package/dist/tools/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/writes.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RootSource } from '../root-source.js';
|
|
3
3
|
/** Env-variabele die schrijvende tools vrijgeeft. */
|
|
4
4
|
export declare const WRITES_ENV_VAR = "PHPSTAN_MCP_ALLOW_WRITES";
|
|
5
5
|
/**
|
|
@@ -12,6 +12,11 @@ export declare const WRITES_ENV_VAR = "PHPSTAN_MCP_ALLOW_WRITES";
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function writesAllowed(env?: NodeJS.ProcessEnv): boolean;
|
|
14
14
|
/** Hangt `clear_result_cache` aan de server. Verandert wel iets, maar niet aan de broncode. */
|
|
15
|
-
export declare function registerClearResultCache(server: McpServer, roots:
|
|
15
|
+
export declare function registerClearResultCache(server: McpServer, roots: RootSource): void;
|
|
16
16
|
/** Hangt `generate_baseline` aan de server. Alleen aanroepen als schrijven aanstaat. */
|
|
17
|
-
export declare function registerGenerateBaseline(server: McpServer, roots:
|
|
17
|
+
export declare function registerGenerateBaseline(server: McpServer, roots: RootSource): void;
|
|
18
|
+
/**
|
|
19
|
+
* Hangt `prune_baseline` aan de server. Alleen aanroepen als schrijven aanstaat: het raakt
|
|
20
|
+
* een bestand dat in git staat, net als generate_baseline, ook al kan het alleen krimpen.
|
|
21
|
+
*/
|
|
22
|
+
export declare function registerPruneBaseline(server: McpServer, roots: RootSource): void;
|
package/dist/tools/writes.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { fromConfig } from '../config.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { clearResultCache, generateBaseline } from '../phpstan.js';
|
|
4
|
+
import { pruneBaseline, renderPruned } from '../prune.js';
|
|
4
5
|
import { displayPath } from '../report.js';
|
|
5
|
-
import { resolveNewWithin,
|
|
6
|
+
import { resolveNewWithin, resolveWithin } from '../project.js';
|
|
6
7
|
import { clears, common, configArgument, log, projectArgument, toFailure, writes } from './shared.js';
|
|
7
8
|
/** Env-variabele die schrijvende tools vrijgeeft. */
|
|
8
9
|
export const WRITES_ENV_VAR = 'PHPSTAN_MCP_ALLOW_WRITES';
|
|
@@ -36,7 +37,7 @@ export function registerClearResultCache(server, roots) {
|
|
|
36
37
|
annotations: clears(),
|
|
37
38
|
}, async (args, extra) => {
|
|
38
39
|
try {
|
|
39
|
-
const resolved = resolveProject(args.project
|
|
40
|
+
const resolved = await roots.resolveProject(args.project);
|
|
40
41
|
const cleared = await clearResultCache(resolved, {
|
|
41
42
|
...(args.config === undefined ? {} : { config: resolveWithin(resolved, args.config) }),
|
|
42
43
|
...(args.timeoutSeconds === undefined ? {} : { timeoutMs: args.timeoutSeconds * 1000 }),
|
|
@@ -91,7 +92,7 @@ export function registerGenerateBaseline(server, roots) {
|
|
|
91
92
|
annotations: writes(),
|
|
92
93
|
}, async (args, extra) => {
|
|
93
94
|
try {
|
|
94
|
-
const resolved = resolveProject(args.project
|
|
95
|
+
const resolved = await roots.resolveProject(args.project);
|
|
95
96
|
const generated = await generateBaseline(resolved, {
|
|
96
97
|
file: resolveNewWithin(resolved, args.file ?? DEFAULT_BASELINE),
|
|
97
98
|
...(args.paths === undefined
|
|
@@ -129,4 +130,73 @@ function renderGenerated(project, generated) {
|
|
|
129
130
|
` - ${naam}`,
|
|
130
131
|
].join('\n');
|
|
131
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Hangt `prune_baseline` aan de server. Alleen aanroepen als schrijven aanstaat: het raakt
|
|
135
|
+
* een bestand dat in git staat, net als generate_baseline, ook al kan het alleen krimpen.
|
|
136
|
+
*/
|
|
137
|
+
export function registerPruneBaseline(server, roots) {
|
|
138
|
+
server.registerTool('prune_baseline', {
|
|
139
|
+
title: 'Prune baseline',
|
|
140
|
+
description: 'Removes the baseline entries that no longer match anything and lowers counts that are ' +
|
|
141
|
+
'too high, based on a full analysis (the same one as unmatched_ignores). Never adds ' +
|
|
142
|
+
'anything: unlike generate_baseline, current errors stay reported. Entries for files ' +
|
|
143
|
+
'that no longer exist are removed too. Only edits the phpstan-baseline*.neon files the ' +
|
|
144
|
+
'config includes; ignoreErrors in the config itself is left alone. Writes nothing when ' +
|
|
145
|
+
'the analysis is incomplete. Run unmatched_ignores first to see what it would remove.',
|
|
146
|
+
inputSchema: {
|
|
147
|
+
project: projectArgument,
|
|
148
|
+
memoryLimit: z.string().optional().describe('E.g. "1G"; this is a full analysis, so it may need more'),
|
|
149
|
+
timeoutSeconds: z.number().int().positive().max(1800).optional(),
|
|
150
|
+
},
|
|
151
|
+
outputSchema: {
|
|
152
|
+
project: z.string(),
|
|
153
|
+
files: z.array(z.object({
|
|
154
|
+
file: z.string(),
|
|
155
|
+
removed: z.number(),
|
|
156
|
+
lowered: z.number().describe('Entries whose count went down'),
|
|
157
|
+
errorsBefore: z.number(),
|
|
158
|
+
errorsAfter: z.number(),
|
|
159
|
+
})),
|
|
160
|
+
totals: z.object({
|
|
161
|
+
removed: z.number(),
|
|
162
|
+
lowered: z.number(),
|
|
163
|
+
missingFiles: z.number().describe('How many of the removed entries named a file that no longer exists'),
|
|
164
|
+
errorsBefore: z.number(),
|
|
165
|
+
errorsAfter: z.number(),
|
|
166
|
+
}),
|
|
167
|
+
left: z
|
|
168
|
+
.object({
|
|
169
|
+
outsideBaseline: z.number().describe('Stale rules in ignoreErrors of the config, not in a baseline'),
|
|
170
|
+
general: z.number().describe('Stale patterns without a path, from a config'),
|
|
171
|
+
unknownCount: z.number().describe('Counts that are too high where PHPStan did not say by how much'),
|
|
172
|
+
inline: z.number().describe('Inline @phpstan-ignore comments that no longer suppress anything; those are in the code'),
|
|
173
|
+
})
|
|
174
|
+
.describe('Stale rules this tool deliberately leaves alone'),
|
|
175
|
+
currentFindings: z.number().describe('Findings from the same run; they were not added and are still reported'),
|
|
176
|
+
notices: z.array(z.string()),
|
|
177
|
+
},
|
|
178
|
+
annotations: writes(),
|
|
179
|
+
}, async (args, extra) => {
|
|
180
|
+
try {
|
|
181
|
+
const resolved = await roots.resolveProject(args.project);
|
|
182
|
+
const pruned = await pruneBaseline(resolved, {
|
|
183
|
+
...common(resolved, args),
|
|
184
|
+
signal: extra.signal,
|
|
185
|
+
});
|
|
186
|
+
log(server, 'info', {
|
|
187
|
+
event: 'baseline pruned',
|
|
188
|
+
project: resolved.path,
|
|
189
|
+
removed: pruned.totals.removed,
|
|
190
|
+
lowered: pruned.totals.lowered,
|
|
191
|
+
});
|
|
192
|
+
return {
|
|
193
|
+
content: [{ type: 'text', text: renderPruned(pruned) }],
|
|
194
|
+
structuredContent: { ...pruned },
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
return toFailure(error);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
132
202
|
//# sourceMappingURL=writes.js.map
|
package/dist/tools/writes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writes.js","sourceRoot":"","sources":["../../src/tools/writes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"writes.js","sourceRoot":"","sources":["../../src/tools/writes.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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 alle tools aan de server. */
|
|
4
|
-
export declare function registerTools(server: McpServer, roots:
|
|
4
|
+
export declare function registerTools(server: McpServer, roots: RootSource): void;
|
package/dist/tools.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RunStore } from './runs.js';
|
|
2
2
|
import { registerAnalyseChanged, registerAnalyseFile, registerAnalyseProject, } from './tools/analysis.js';
|
|
3
|
-
import { registerBaselineSummary, registerDiagnose, registerInspectType, registerListProjects, registerServerConfig, registerUnmatchedIgnores, } from './tools/inspect.js';
|
|
3
|
+
import { registerBaselineHistory, registerBaselineSummary, registerDiagnose, registerInspectType, registerListProjects, registerServerConfig, registerUnmatchedIgnores, } from './tools/inspect.js';
|
|
4
4
|
import { registerPrompts } from './tools/prompts.js';
|
|
5
|
-
import { registerClearResultCache, registerGenerateBaseline, writesAllowed, } from './tools/writes.js';
|
|
5
|
+
import { registerClearResultCache, registerGenerateBaseline, registerPruneBaseline, writesAllowed, } from './tools/writes.js';
|
|
6
6
|
/** Hangt alle tools aan de server. */
|
|
7
7
|
export function registerTools(server, roots) {
|
|
8
8
|
// Eén opslag per server: een runId uit het ene gesprek hoort niet in het andere,
|
|
@@ -14,12 +14,15 @@ export function registerTools(server, roots) {
|
|
|
14
14
|
registerAnalyseChanged(server, roots, runs);
|
|
15
15
|
registerInspectType(server, roots);
|
|
16
16
|
registerBaselineSummary(server, roots);
|
|
17
|
+
registerBaselineHistory(server, roots);
|
|
17
18
|
registerUnmatchedIgnores(server, roots);
|
|
18
19
|
registerDiagnose(server, roots);
|
|
19
20
|
registerServerConfig(server, roots);
|
|
20
21
|
registerClearResultCache(server, roots);
|
|
21
|
-
if (writesAllowed())
|
|
22
|
+
if (writesAllowed()) {
|
|
22
23
|
registerGenerateBaseline(server, roots);
|
|
24
|
+
registerPruneBaseline(server, roots);
|
|
25
|
+
}
|
|
23
26
|
registerPrompts(server, roots);
|
|
24
27
|
}
|
|
25
28
|
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,sCAAsC;AACtC,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,sCAAsC;AACtC,MAAM,UAAU,aAAa,CAAC,MAAiB,EAAE,KAAiB;IAEhE,iFAAiF;IACjF,kEAAkE;IAClE,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAE5B,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,sBAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAExC,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACxC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/unmatched.d.ts
CHANGED
|
@@ -20,6 +20,18 @@ export interface StaleIgnore {
|
|
|
20
20
|
*/
|
|
21
21
|
readonly inBaseline: boolean | null;
|
|
22
22
|
}
|
|
23
|
+
/** Een inline `@phpstan-ignore` die niets meer onderdrukt. Broncode, geen NEON-regel: vandaar apart van StaleIgnore. */
|
|
24
|
+
export interface StaleInlineIgnore {
|
|
25
|
+
/** Pad zoals het aan het model getoond wordt: relatief aan de projectroot waar dat kan. */
|
|
26
|
+
readonly path: string;
|
|
27
|
+
/**
|
|
28
|
+
* De regel waar de ignore óp werkt, zoals PHPStan hem noemt. Staat het commentaar op een eigen
|
|
29
|
+
* regel (`-next-line`, of `@phpstan-ignore` boven een statement), dan is dat de regel eronder.
|
|
30
|
+
*/
|
|
31
|
+
readonly line: number | null;
|
|
32
|
+
/** Null bij een ignore zonder identifier (`-line`, `-next-line`): die onderdrukt álles op zijn regel. */
|
|
33
|
+
readonly identifier: string | null;
|
|
34
|
+
}
|
|
23
35
|
/** Het antwoord van `unmatched_ignores`. */
|
|
24
36
|
export interface UnmatchedReport {
|
|
25
37
|
readonly project: string;
|
|
@@ -31,6 +43,10 @@ export interface UnmatchedReport {
|
|
|
31
43
|
readonly inBaseline: number;
|
|
32
44
|
/** Patronen zonder pad die niets meer matchen. */
|
|
33
45
|
readonly general: number;
|
|
46
|
+
/** Inline ignores in de code die niets meer onderdrukken. */
|
|
47
|
+
readonly inline: number;
|
|
48
|
+
/** Hoeveel daarvan geen identifier noemen: de breedste soort. */
|
|
49
|
+
readonly inlineWithoutIdentifier: number;
|
|
34
50
|
/** Gewone bevindingen uit dezelfde run: wat een nieuwe baseline óók zou verstoppen. */
|
|
35
51
|
readonly otherFindings: number;
|
|
36
52
|
};
|
|
@@ -41,12 +57,15 @@ export interface UnmatchedReport {
|
|
|
41
57
|
readonly entries: readonly StaleIgnore[];
|
|
42
58
|
/** Patronen zonder pad die niets meer matchen, uit de config of een meegeleverde config. */
|
|
43
59
|
readonly general: readonly string[];
|
|
60
|
+
/** Verouderde inline ignores, op pad en regel; hoogstens MAX_INLINE. */
|
|
61
|
+
readonly inline: readonly StaleInlineIgnore[];
|
|
44
62
|
/** Algemene fouten van PHPStan die géén verouderde negeerregel zijn. */
|
|
45
63
|
readonly generalErrors: readonly string[];
|
|
46
64
|
readonly warnings: readonly string[];
|
|
47
65
|
readonly notices: readonly string[];
|
|
48
66
|
readonly omitted: {
|
|
49
67
|
readonly general: number;
|
|
68
|
+
readonly inline: number;
|
|
50
69
|
readonly generalErrors: number;
|
|
51
70
|
readonly warnings: number;
|
|
52
71
|
};
|
|
@@ -69,6 +88,12 @@ export declare function findUnmatchedIgnores(project: ResolvedProject, options?:
|
|
|
69
88
|
readonly offset?: number | undefined;
|
|
70
89
|
readonly limit?: number | undefined;
|
|
71
90
|
}): Promise<UnmatchedReport>;
|
|
91
|
+
/**
|
|
92
|
+
* De analyse zelf, met `reportUnmatchedIgnoredErrors` aan: de ruwe uitslag, zonder rapport.
|
|
93
|
+
* Apart omdat `prune_baseline` dezelfde run nodig heeft, met de volledige patronen in
|
|
94
|
+
* plaats van de ingekorte uit het rapport.
|
|
95
|
+
*/
|
|
96
|
+
export declare function analyseUnmatched(project: ResolvedProject, configName: string, options?: Pick<AnalyseOptions, 'memoryLimit' | 'timeoutMs' | 'signal'>): Promise<AnalysisResult>;
|
|
72
97
|
/**
|
|
73
98
|
* De inhoud van de tijdelijke config. Het pad gaat als NEON-string tussen enkele
|
|
74
99
|
* quotes: een `'` wordt verdubbeld, en een `%` ook, want PHPStan leest `%naam%` in
|
|
@@ -82,10 +107,51 @@ export declare function unmatchedConfig(configPath: string): string;
|
|
|
82
107
|
* met identifier `ignore.unmatched` of bij een te hoog `count` `ignore.count`.
|
|
83
108
|
* Een patroon zonder pad komt als algemene fout. Of een regel uit de baseline komt,
|
|
84
109
|
* zegt PHPStan niet; dat volgt uit identifier en pad tegen de baseline zelf.
|
|
110
|
+
*
|
|
111
|
+
* Een inline ignore die niets meer doet, komt ook als bevinding (zie `readStaleInline`) en
|
|
112
|
+
* telde eerst als gewone bevinding: dan meldde `otherFindings` wat een nieuwe baseline zou
|
|
113
|
+
* verstoppen, terwijl PHPStan die juist niet in een baseline zet.
|
|
85
114
|
*/
|
|
86
115
|
export declare function buildUnmatchedReport(project: string, result: AnalysisResult, baselines: IncludedBaselines, window?: {
|
|
87
116
|
readonly offset?: number | undefined;
|
|
88
117
|
readonly limit?: number | undefined;
|
|
89
118
|
}, notices?: readonly string[]): UnmatchedReport;
|
|
119
|
+
/**
|
|
120
|
+
* Leest een bevinding als inline ignore die niets meer onderdrukt, of null.
|
|
121
|
+
*
|
|
122
|
+
* Nagemeten op PHPStan 2.2: `ignore.unmatchedLine` ("No error to ignore is reported on line N.")
|
|
123
|
+
* bij een ignore zonder identifier, en `ignore.unmatchedIdentifier` per identifier die op zijn
|
|
124
|
+
* regel niets vond, ook als de andere identifiers in hetzelfde commentaar nog wél iets doen. Beide
|
|
125
|
+
* alleen met `reportUnmatchedIgnoredErrors` aan (de standaard, maar veel projecten zetten hem uit),
|
|
126
|
+
* en met als regel die waar de ignore óp werkt. PHPStan zet ze niet in een gegenereerde baseline.
|
|
127
|
+
*
|
|
128
|
+
* `ignore.noComment`, `ignore.allLineErrors` en `ignore.parseError` horen hier niet bij: dat is
|
|
129
|
+
* een ignore die tegen de regels van de config ingaat of niet te lezen is, geen verouderde, en
|
|
130
|
+
* blijft dus een bevinding.
|
|
131
|
+
*/
|
|
132
|
+
export declare function readStaleInline(finding: AnalysisResult['findings'][number]): {
|
|
133
|
+
file: string;
|
|
134
|
+
line: number | null;
|
|
135
|
+
identifier: string | null;
|
|
136
|
+
} | null;
|
|
137
|
+
/** Het patroon van een algemene fout over een regel zonder pad die niets meer matcht, of null. */
|
|
138
|
+
export declare function unmatchedGeneralPattern(error: string): string | null;
|
|
139
|
+
/** Wat PHPStan over één verouderde negeerregel met een pad zegt, met het volledige patroon. */
|
|
140
|
+
export interface StaleRule {
|
|
141
|
+
/** Het bestand uit de regel, absoluut en al naar de host vertaald. */
|
|
142
|
+
readonly file: string;
|
|
143
|
+
readonly identifier: string | null;
|
|
144
|
+
/**
|
|
145
|
+
* Zoals PHPStan de regel noemt: het patroon van `message`, `rawMessage` tussen dubbele
|
|
146
|
+
* quotes, of bij een regel met alleen een identifier die identifier.
|
|
147
|
+
*/
|
|
148
|
+
readonly pattern: string;
|
|
149
|
+
/** `countTooLow`: de fout komt vaker voor dan `count`. Geen verouderde regel: de extra keer is een bevinding. */
|
|
150
|
+
readonly kind: 'unmatched' | 'countTooHigh' | 'countTooLow';
|
|
151
|
+
readonly expected: number | null;
|
|
152
|
+
readonly occurred: number | null;
|
|
153
|
+
}
|
|
154
|
+
/** Leest één bevinding als verouderde negeerregel, of null als het een gewone bevinding is. */
|
|
155
|
+
export declare function readStaleRule(finding: AnalysisResult['findings'][number], project: string): StaleRule | null;
|
|
90
156
|
/** Schrijft het antwoord uit als tekst voor het model. */
|
|
91
157
|
export declare function renderUnmatched(report: UnmatchedReport): string;
|