phpstan-mcp-mx 0.21.1 → 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.
Files changed (98) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/README.md +128 -79
  3. package/dist/baseline.d.ts +1 -1
  4. package/dist/baseline.js +27 -15
  5. package/dist/baseline.js.map +1 -1
  6. package/dist/changed.d.ts +5 -5
  7. package/dist/changed.js +68 -35
  8. package/dist/changed.js.map +1 -1
  9. package/dist/compare.d.ts +3 -3
  10. package/dist/compare.js +14 -8
  11. package/dist/compare.js.map +1 -1
  12. package/dist/composer.d.ts +2 -2
  13. package/dist/composer.js +49 -27
  14. package/dist/composer.js.map +1 -1
  15. package/dist/config.d.ts +4 -3
  16. package/dist/config.js +11 -7
  17. package/dist/config.js.map +1 -1
  18. package/dist/defaults.d.ts +1 -1
  19. package/dist/defaults.js +3 -2
  20. package/dist/defaults.js.map +1 -1
  21. package/dist/dumptype.d.ts +1 -1
  22. package/dist/dumptype.js +20 -12
  23. package/dist/dumptype.js.map +1 -1
  24. package/dist/failure.d.ts +2 -2
  25. package/dist/failure.js.map +1 -1
  26. package/dist/index.js +27 -4
  27. package/dist/index.js.map +1 -1
  28. package/dist/php.d.ts +46 -0
  29. package/dist/php.js +100 -0
  30. package/dist/php.js.map +1 -0
  31. package/dist/phpstan/error.js.map +1 -1
  32. package/dist/phpstan/output.d.ts +2 -2
  33. package/dist/phpstan/output.js +16 -10
  34. package/dist/phpstan/output.js.map +1 -1
  35. package/dist/phpstan/parameters.d.ts +2 -2
  36. package/dist/phpstan/parameters.js +1 -1
  37. package/dist/phpstan/parameters.js.map +1 -1
  38. package/dist/phpstan/process.d.ts +16 -5
  39. package/dist/phpstan/process.js +48 -19
  40. package/dist/phpstan/process.js.map +1 -1
  41. package/dist/phpstan/queue.d.ts +1 -1
  42. package/dist/phpstan/queue.js +6 -4
  43. package/dist/phpstan/queue.js.map +1 -1
  44. package/dist/phpstan.d.ts +6 -6
  45. package/dist/phpstan.js +51 -31
  46. package/dist/phpstan.js.map +1 -1
  47. package/dist/project.d.ts +7 -3
  48. package/dist/project.js +60 -21
  49. package/dist/project.js.map +1 -1
  50. package/dist/report.d.ts +5 -5
  51. package/dist/report.js +47 -28
  52. package/dist/report.js.map +1 -1
  53. package/dist/root-source.d.ts +43 -0
  54. package/dist/root-source.js +124 -0
  55. package/dist/root-source.js.map +1 -0
  56. package/dist/roots.d.ts +13 -1
  57. package/dist/roots.js +24 -7
  58. package/dist/roots.js.map +1 -1
  59. package/dist/runner.d.ts +3 -3
  60. package/dist/runner.js +17 -10
  61. package/dist/runner.js.map +1 -1
  62. package/dist/runs.d.ts +3 -3
  63. package/dist/runs.js +9 -6
  64. package/dist/runs.js.map +1 -1
  65. package/dist/schema-dialect.d.ts +2 -2
  66. package/dist/schema-dialect.js +8 -5
  67. package/dist/schema-dialect.js.map +1 -1
  68. package/dist/server.d.ts +3 -2
  69. package/dist/server.js +10 -6
  70. package/dist/server.js.map +1 -1
  71. package/dist/tmpdir.d.ts +3 -3
  72. package/dist/tmpdir.js +10 -7
  73. package/dist/tmpdir.js.map +1 -1
  74. package/dist/tools/analysis.d.ts +4 -4
  75. package/dist/tools/analysis.js +7 -5
  76. package/dist/tools/analysis.js.map +1 -1
  77. package/dist/tools/inspect.d.ts +7 -7
  78. package/dist/tools/inspect.js +111 -45
  79. package/dist/tools/inspect.js.map +1 -1
  80. package/dist/tools/prompts.d.ts +5 -5
  81. package/dist/tools/prompts.js +15 -15
  82. package/dist/tools/prompts.js.map +1 -1
  83. package/dist/tools/shared.d.ts +4 -4
  84. package/dist/tools/shared.js +13 -11
  85. package/dist/tools/shared.js.map +1 -1
  86. package/dist/tools/writes.d.ts +3 -3
  87. package/dist/tools/writes.js +4 -4
  88. package/dist/tools/writes.js.map +1 -1
  89. package/dist/tools.d.ts +2 -2
  90. package/dist/tools.js +2 -1
  91. package/dist/tools.js.map +1 -1
  92. package/dist/unmatched.d.ts +3 -3
  93. package/dist/unmatched.js +35 -20
  94. package/dist/unmatched.js.map +1 -1
  95. package/dist/version.d.ts +2 -2
  96. package/dist/version.js +2 -2
  97. package/dist/version.js.map +1 -1
  98. package/package.json +1 -1
@@ -3,9 +3,10 @@ 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, resolveProject } from '../project.js';
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
+ import { PHP_ENV_VAR, hostPhp } from '../php.js';
9
10
  import { loadRunners } from '../runner.js';
10
11
  import { DEFAULT_LIMIT, MAX_LIMIT } from '../report.js';
11
12
  import { loadTmpDirMode } from '../tmpdir.js';
@@ -38,21 +39,27 @@ export function registerListProjects(server, roots) {
38
39
  })).describe('Defaults the server sets for this project; a tool argument takes precedence'),
39
40
  })),
40
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'),
41
46
  },
42
47
  annotations: readOnly(),
43
- }, () => {
48
+ }, async () => {
49
+ const scope = await roots.current();
44
50
  // Met de reden erbij: zonder viel dit terug op `phpstan_failed`, terwijl
45
- // PHPStan hier niet eens gestart is. Juist bij deze tool — het beginpunt — moet
51
+ // PHPStan hier niet eens gestart is. Juist bij deze tool het beginpunt moet
46
52
  // een aanroeper kunnen zien dat het aan de serverconfiguratie ligt.
47
- if (roots.length === 0) {
48
- return failure(`No project directories are configured. Set ${ROOTS_ENV_VAR} in the ` +
49
- 'MCP server configuration to the absolute paths that may be analysed, ' +
50
- '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.` });
51
56
  }
52
- const projects = discoverProjects(roots);
53
- const problems = roots
57
+ const projects = discoverProjects(scope.allowed);
58
+ const problems = scope.allowed
54
59
  .filter((root) => root.problem !== null)
55
60
  .map((root) => ({ root: root.raw, problem: root.problem }));
61
+ const workingDirectory = soleRoot(scope.client);
62
+ const rootsFrom = scope.origin;
56
63
  // Kapotte standaarden laten de lijst heel (describeProject valt dan terug op
57
64
  // wat er ligt), maar horen hier wel te staan: anders lijkt het alsof ze gelden.
58
65
  try {
@@ -62,13 +69,25 @@ export function registerListProjects(server, roots) {
62
69
  problems.push({ root: PROJECTS_ENV_VAR, problem: error instanceof Error ? error.message : String(error) });
63
70
  }
64
71
  return {
65
- content: [{ type: 'text', text: renderProjects(projects, problems) }],
66
- structuredContent: { projects, problems },
72
+ content: [{ type: 'text', text: renderProjects({ projects, problems, rootsFrom, workingDirectory }) }],
73
+ structuredContent: { projects, problems, rootsFrom, workingDirectory },
67
74
  };
68
75
  });
69
76
  }
70
- function renderProjects(projects, problems) {
77
+ function renderProjects(listing) {
78
+ const { projects, problems } = listing;
71
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
+ }
72
91
  if (projects.length === 0) {
73
92
  lines.push('No PHP projects found under the configured directories.');
74
93
  }
@@ -85,20 +104,24 @@ function renderProjects(projects, problems) {
85
104
  }
86
105
  if (problems.length > 0) {
87
106
  lines.push('', 'Skipped entries from the configuration:');
88
- for (const problem of problems)
107
+ for (const problem of problems) {
89
108
  lines.push(`- ${problem.root}: ${problem.problem}`);
109
+ }
90
110
  }
91
111
  return lines.join('\n');
92
112
  }
93
- /** "memory 2G, timeout 600s" — alleen wat gezet is, in een vaste volgorde. */
113
+ /** "memory 2G, timeout 600s" alleen wat gezet is, in een vaste volgorde. */
94
114
  function describeDefaults(defaults) {
95
115
  const delen = [];
96
- if (defaults.memoryLimit !== null)
116
+ if (defaults.memoryLimit !== null) {
97
117
  delen.push(`memory ${defaults.memoryLimit}`);
98
- if (defaults.timeoutSeconds !== null)
118
+ }
119
+ if (defaults.timeoutSeconds !== null) {
99
120
  delen.push(`timeout ${String(defaults.timeoutSeconds)}s`);
100
- if (defaults.config !== null)
121
+ }
122
+ if (defaults.config !== null) {
101
123
  delen.push(`config ${defaults.config}`);
124
+ }
102
125
  return delen.join(', ');
103
126
  }
104
127
  /**
@@ -111,7 +134,8 @@ export function registerServerConfig(server, roots) {
111
134
  title: 'Server settings',
112
135
  description: 'Returns the settings this server runs with: which project directories are in ' +
113
136
  'scope, the default memory limit, how many analyses may run in parallel, where ' +
114
- 'temporary files go and whether writing tools are enabled. Use this when something ' +
137
+ 'temporary files go, which PHP starts PHPStan and whether writing tools are enabled. ' +
138
+ 'Use this when something ' +
115
139
  'is refused or slower than expected, before you doubt the project.',
116
140
  inputSchema: {},
117
141
  outputSchema: {
@@ -121,10 +145,23 @@ export function registerServerConfig(server, roots) {
121
145
  path: nullable(z.string()).describe('The resolved path, or null if the root is unusable'),
122
146
  problem: nullable(z.string()),
123
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'),
124
159
  memoryLimit: nullable(z.string()).describe('Default --memory-limit, or null if it is not set'),
125
160
  maxParallel: nullable(z.number()).describe('How many analyses may run in parallel; null if the value was rejected'),
126
161
  tmpDir: nullable(z.string()).describe('"project" of "shared"'),
127
162
  writesAllowed: z.boolean().describe('Whether generate_baseline is registered'),
163
+ php: nullable(z.string()).describe('The PHP binary that starts PHPStan on the host; null means vendor/bin/phpstan is started ' +
164
+ 'directly, which does not work on Windows'),
128
165
  runners: z.array(z.string()).describe('Projects with a runner (execution environment)'),
129
166
  projectDefaults: z
130
167
  .array(z.object({
@@ -139,18 +176,24 @@ export function registerServerConfig(server, roots) {
139
176
  .describe('Settings that were rejected; those fields are then null'),
140
177
  },
141
178
  annotations: readOnly(),
142
- }, () => {
179
+ }, async () => {
180
+ const scope = await roots.current();
181
+ const describe = (root) => ({ raw: root.raw, path: root.path, problem: root.problem });
143
182
  // Elke waarde apart uitlezen: de loaders weigeren een onbruikbare waarde met
144
183
  // een uitleg, en juist die uitleg is hier het antwoord. Eén mislukte
145
184
  // instelling mag de rest niet onzichtbaar maken.
146
185
  const problems = [];
147
186
  const config = {
148
187
  version: VERSION,
149
- roots: roots.map((root) => ({ raw: root.raw, path: root.path, problem: root.problem })),
188
+ roots: scope.origin === 'config' ? scope.allowed.map(describe) : [],
189
+ rootsFrom: scope.origin,
190
+ clientRoots: scope.client.map(describe),
191
+ clientRootsProblem: scope.clientProblem,
150
192
  memoryLimit: setting(() => loadDefaultMemoryLimit() ?? null, problems),
151
193
  maxParallel: setting(() => loadMaxParallel(), problems),
152
194
  tmpDir: setting(() => loadTmpDirMode(), problems),
153
195
  writesAllowed: writesAllowed(),
196
+ php: setting(() => hostPhp() ?? null, problems),
154
197
  runners: setting(() => [...loadRunners().keys()], problems) ?? [],
155
198
  projectDefaults: setting(() => [...loadProjectDefaults().entries()].map(([project, defaults]) => ({
156
199
  project,
@@ -181,35 +224,53 @@ function setting(read, problems) {
181
224
  }
182
225
  }
183
226
  function renderConfig(config) {
184
- const lines = [`phpstan-mcp ${config.version}`, '', 'Project directories:'];
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}`}`;
185
229
  if (config.roots.length === 0) {
186
- lines.push(` (none; set ${ROOTS_ENV_VAR})`);
230
+ lines.push(` (not set; the directories the client shares are in scope instead)`);
187
231
  }
188
232
  else {
189
- for (const root of config.roots) {
190
- lines.push(` ${root.path ?? root.raw}${root.problem === null ? '' : ` — ${root.problem}`}`);
191
- }
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'})`);
192
238
  }
193
- 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'}`, `Runners: ${config.runners.length === 0 ? 'none' : config.runners.join(', ')}`);
239
+ else {
240
+ lines.push(...config.clientRoots.map(show));
241
+ }
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(', ')}`);
194
243
  if (config.projectDefaults.length > 0) {
195
244
  lines.push('', 'Per-project defaults (a tool argument takes precedence):');
196
- for (const entry of config.projectDefaults)
245
+ for (const entry of config.projectDefaults) {
197
246
  lines.push(` ${entry.project}: ${describeDefaults(entry)}`);
247
+ }
198
248
  }
199
249
  if (config.problems.length > 0) {
200
250
  lines.push('', 'Rejected settings:');
201
- for (const problem of config.problems)
251
+ for (const problem of config.problems) {
202
252
  lines.push(`- ${problem}`);
253
+ }
203
254
  }
204
255
  return lines.join('\n');
205
256
  }
257
+ /**
258
+ * Wat er gebeurt zonder ingestelde PHP. Op Windows is dat geen standaard maar een
259
+ * storing: dan kan geen enkel project zonder runner starten, en dat hoort hier te staan
260
+ * in plaats van pas bij de eerste analyse.
261
+ */
262
+ function describeMissingPhp() {
263
+ return process.platform === 'win32'
264
+ ? `none found; set ${PHP_ENV_VAR} to php.exe, or no project without a runner can start`
265
+ : 'vendor/bin/phpstan is started directly (its #!/usr/bin/env php)';
266
+ }
206
267
  /** Hangt `diagnose_project` aan de server: PHPStans eigen opstelling in een project. */
207
268
  export function registerDiagnose(server, roots) {
208
269
  server.registerTool('diagnose_project', {
209
270
  title: 'Inspect PHPStan setup',
210
271
  description: 'Asks PHPStan itself for its setup in this project: PHP and PHPStan version, the ' +
211
272
  'configs that Composer packages bring along (such as Larastan) and whether the turbo ' +
212
- 'extension is enabled — plus the configuration as PHPStan ends up using it: the level ' +
273
+ 'extension is enabled plus the configuration as PHPStan ends up using it: the level ' +
213
274
  '(also when it is set in a config from vendor/), the paths, the number of ignore rules ' +
214
275
  'and the temp directory. Also lists the Composer scripts that run PHPStan and how they ' +
215
276
  'differ from this server, such as another config or memory limit. Does not run an ' +
@@ -257,7 +318,7 @@ export function registerDiagnose(server, roots) {
257
318
  }, async (args, extra) => {
258
319
  const begin = Date.now();
259
320
  try {
260
- const resolved = resolveProject(args.project, roots);
321
+ const resolved = await roots.resolveProject(args.project);
261
322
  log(server, 'debug', { event: 'diagnosis started', project: resolved.path });
262
323
  const diagnosis = await diagnose(resolved, {
263
324
  ...(args.timeoutSeconds === undefined ? {} : { timeoutMs: args.timeoutSeconds * 1000 }),
@@ -303,7 +364,7 @@ export function registerBaselineSummary(server, roots) {
303
364
  description: 'Reads the phpstan-baseline*.neon of a project and counts what is ignored, per ' +
304
365
  'identifier and per file, and also counts the inline @phpstan-ignore comments in the ' +
305
366
  'code. Does not run an analysis. Note: what is in here is exactly what analyse_project ' +
306
- 'does NOT report — a project that includes its baseline only reports the errors that ' +
367
+ 'does NOT report a project that includes its baseline only reports the errors that ' +
307
368
  'are new. With `path`, also the entries for one file, with identifier, count and pattern.',
308
369
  inputSchema: {
309
370
  project: projectArgument,
@@ -335,13 +396,14 @@ export function registerBaselineSummary(server, roots) {
335
396
  annotations: readOnly(),
336
397
  }, async ({ project, path }) => {
337
398
  try {
338
- const resolved = resolveProject(project, roots);
399
+ const resolved = await roots.resolveProject(project);
339
400
  const summary = summariseBaseline(resolved);
340
401
  const entries = path === undefined || path === '' ? null : baselineEntriesFor(resolved, path);
341
402
  const inline = await inlineIgnoresOf(resolved);
342
403
  const delen = [renderBaseline(summary), renderInlineIgnores(inline)];
343
- if (entries !== null)
404
+ if (entries !== null) {
344
405
  delen.push(renderEntries(path ?? '', entries));
406
+ }
345
407
  return {
346
408
  content: [{ type: 'text', text: delen.join('\n\n') }],
347
409
  structuredContent: { ...summary, entries, ...inline },
@@ -354,7 +416,7 @@ export function registerBaselineSummary(server, roots) {
354
416
  }
355
417
  /**
356
418
  * De inline ignores, of waarom die er niet zijn. Geen fout als git ontbreekt: de baseline is
357
- * dan nog steeds te lezen, en die was de vraag. Wel null en niet nul — nul zou zeggen dat er
419
+ * dan nog steeds te lezen, en die was de vraag. Wel null en niet nul nul zou zeggen dat er
358
420
  * niets verstopt wordt, en dat is dan juist niet bekend.
359
421
  */
360
422
  async function inlineIgnoresOf(project) {
@@ -362,10 +424,11 @@ async function inlineIgnoresOf(project) {
362
424
  return { inlineIgnores: await countInlineIgnores(project), inlineIgnoresProblem: null };
363
425
  }
364
426
  catch (error) {
365
- if (!(error instanceof GitError))
427
+ if (!(error instanceof GitError)) {
366
428
  throw error;
429
+ }
367
430
  // Een eigen zin en niet error.message: die is geschreven voor analyse_changed, en raadt
368
- // "analyse_project met paden" aan — dat telt geen inline ignores.
431
+ // "analyse_project met paden" aan dat telt geen inline ignores.
369
432
  const waarom = error.reason === 'not_a_git_repository'
370
433
  ? 'the project is not under git, and they are counted with git grep.'
371
434
  : error.reason === 'git_missing' && /not found/i.test(error.message)
@@ -376,12 +439,14 @@ async function inlineIgnoresOf(project) {
376
439
  }
377
440
  /** De inline ignores als tekst, onder de baseline. */
378
441
  function renderInlineIgnores({ inlineIgnores: inline, inlineIgnoresProblem: problem, }) {
379
- if (inline === null)
442
+ if (inline === null) {
380
443
  return `Inline @phpstan-ignore comments were not counted: ${problem ?? 'unknown reason'}`;
381
- if (inline.total === 0)
444
+ }
445
+ if (inline.total === 0) {
382
446
  return 'No inline @phpstan-ignore comments in the code.';
447
+ }
383
448
  const lines = [
384
- `${String(inline.total)} inline @phpstan-ignore comment(s) in ${String(inline.files)} file(s) — counted in all PHP ` +
449
+ `${String(inline.total)} inline @phpstan-ignore comment(s) in ${String(inline.files)} file(s) counted in all PHP ` +
385
450
  'files git knows, also outside the analysed paths. These are hidden too, and a new baseline does not touch them.',
386
451
  ];
387
452
  if (inline.withoutIdentifier > 0) {
@@ -400,8 +465,9 @@ function renderInlineIgnores({ inlineIgnores: inline, inlineIgnoresProblem: prob
400
465
  const MAX_PATTERN_CHARS = 200;
401
466
  /** De baseline-regels voor één bestand, als tekst. */
402
467
  function renderEntries(path, entries) {
403
- if (entries.length === 0)
468
+ if (entries.length === 0) {
404
469
  return `No baseline entries for ${path}.`;
470
+ }
405
471
  const kort = (message) => message === null ? '' : message.length <= MAX_PATTERN_CHARS ? ` ${message}` : ` ${message.slice(0, MAX_PATTERN_CHARS)}…`;
406
472
  return [
407
473
  `${String(entries.length)} baseline entr${entries.length === 1 ? 'y' : 'ies'} for ${path}:`,
@@ -413,10 +479,10 @@ export function registerUnmatchedIgnores(server, roots) {
413
479
  server.registerTool('unmatched_ignores', {
414
480
  title: 'Find stale ignore rules',
415
481
  description: 'Runs a full analysis with reportUnmatchedIgnoredErrors enabled and returns the ' +
416
- 'ignore rules that no longer match anything, or match less often than their count — ' +
482
+ 'ignore rules that no longer match anything, or match less often than their count ' +
417
483
  'from the baseline and from ignoreErrors in the config. Such a rule belongs to an ' +
418
484
  'error that has been fixed and can be removed. Does not change anything in the ' +
419
- 'project: the temporary config lives outside it — for a project with a runner, in ' +
485
+ 'project: the temporary config lives outside it for a project with a runner, in ' +
420
486
  "that runner's temp directory.",
421
487
  inputSchema: {
422
488
  project: projectArgument,
@@ -477,7 +543,7 @@ export function registerUnmatchedIgnores(server, roots) {
477
543
  }, async (args, extra) => {
478
544
  const begin = Date.now();
479
545
  try {
480
- const resolved = resolveProject(args.project, roots);
546
+ const resolved = await roots.resolveProject(args.project);
481
547
  log(server, 'debug', { event: 'checking ignore rules', project: resolved.path });
482
548
  const report = await findUnmatchedIgnores(resolved, {
483
549
  ...(args.memoryLimit === undefined ? {} : { memoryLimit: args.memoryLimit }),
@@ -555,7 +621,7 @@ export function registerInspectType(server, roots) {
555
621
  }, async (args, extra) => {
556
622
  const begin = Date.now();
557
623
  try {
558
- const resolved = resolveProject(args.project, roots);
624
+ const resolved = await roots.resolveProject(args.project);
559
625
  log(server, 'debug', { event: 'type inspection started', project: resolved.path });
560
626
  const report = await inspectType(resolved, { path: args.path, line: args.line, expressions: args.expressions }, { ...common(resolved, args), signal: extra.signal });
561
627
  log(server, 'info', {
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/tools/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/tools/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE5H,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAiB;IAEvE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,gFAAgF;YAChF,iFAAiF;YACjF,uDAAuD;QACzD,WAAW,EAAE,EAAE;QACf,YAAY,EAAE;YACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;gBACvB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;gBACxE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;gBAChG,QAAQ,EAAE,QAAQ,CAChB,CAAC,CAAC,MAAM,CAAC;oBACP,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACjC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACpC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC7B,CAAC,CACH,CAAC,QAAQ,CAAC,6EAA6E,CAAC;aAC1F,CAAC,CACH;YACD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtE,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBAC1B,QAAQ,CAAC,oCAAoC,aAAa,oDAAoD,CAAC;YAClH,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,4EAA4E,CAAC;SAC9H;QACD,WAAW,EAAE,QAAQ,EAAE;KACxB,EACD,KAAK,IAAyB,EAAE;QAC9B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEpC,yEAAyE;QACzE,4EAA4E;QAC5E,oEAAoE;QACpE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CACZ,sEAAsE,KAAK,CAAC,aAAa,IAAI,4BAA4B,IAAI;gBAC3H,OAAO,aAAa,mGAAmG,EACzH,qBAAqB,EACrB,EAAE,IAAI,EAAE,OAAO,aAAa,kCAAkC,EAAE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO;aAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;aACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAiB,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAE/B,6EAA6E;QAC7E,gFAAgF;QAChF,IAAI,CAAC;YACH,mBAAmB,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACtG,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE;SACvE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAYvB;IAEC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,6FAA6F;IAC7F,sFAAsF;IACtF,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,yDAAyD,aAAa,cAAc,CAAC,CAAC;IACnG,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,gBAAgB,yCAAyC,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;QAE7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC;YACjF,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC;YACtE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtG,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,KAAK,MAAM,KAAK,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,yCAAyC,CAAC,CAAC;QAE1D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4EAA4E;AAC5E,SAAS,gBAAgB,CAAC,QAIzB;IAEC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAiB;IAEvE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,+EAA+E;YAC/E,gFAAgF;YAChF,sFAAsF;YACtF,0BAA0B;YAC1B,mEAAmE;QACrE,WAAW,EAAE,EAAE;QACf,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;gBACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;gBAChE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;gBACzF,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aAC9B,CAAC,CACH;YACD,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBAC1B,QAAQ,CAAC,8CAA8C,aAAa,mDAAmD,CAAC;YAC3H,WAAW,EAAE,CAAC;iBACX,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBACnD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;gBACnF,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aAC9B,CAAC,CACH;iBACA,QAAQ,CAAC,+FAA+F,CAAC;YAC5G,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YAClG,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YAC9F,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,uEAAuE,CAAC;YACnH,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC9D,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC9E,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAChC,2FAA2F;gBACzF,0CAA0C,CAC7C;YACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACvF,eAAe,EAAE,CAAC;iBACf,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aAC7B,CAAC,CACH;iBACA,QAAQ,CAAC,4EAA4E,CAAC;YACzF,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,yDAAyD,CAAC;SACvE;QACD,WAAW,EAAE,QAAQ,EAAE;KACxB,EACD,KAAK,IAAyB,EAAE;QAC9B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE7F,6EAA6E;QAC7E,qEAAqE;QACrE,iDAAiD;QACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACnE,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvC,kBAAkB,EAAE,KAAK,CAAC,aAAa;YACvC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,IAAI,IAAI,EAAE,QAAQ,CAAC;YACtE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC;YACvD,MAAM,EAAE,OAAO,CAAS,GAAG,EAAE,CAAC,cAAc,EAAE,EAAE,QAAQ,CAAC;YACzD,aAAa,EAAE,aAAa,EAAE;YAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,QAAQ,CAAC;YAC/C,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE;YACjE,eAAe,EACb,OAAO,CACL,GAAG,EAAE,CACH,CAAC,GAAG,mBAAmB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjE,OAAO;gBACP,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;gBACzC,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,IAAI;gBAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI;aAChC,CAAC,CAAC,EACL,QAAQ,CACT,IAAI,EAAE;YACT,QAAQ;SACT,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,iBAAiB,EAAE,EAAE,GAAG,MAAM,EAAE;SACjC,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAI,IAAa,EAAE,QAAkB;IAEnD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAmBrB;IAEC,MAAM,KAAK,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,wBAAwB,aAAa,IAAI,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,CAAC,IAAkE,EAAE,EAAE,CAClF,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IAElF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpF,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,mCAAmC,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,aAAa,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAErJ,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,kBAAkB,IAAI,+BAA+B,GAAG,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CACR,EAAE,EACF,wBAAwB,MAAM,CAAC,WAAW,IAAI,mCAAmC,EAAE,EACnF,wBAAwB,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAC9F,wBAAwB,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAC5E,wBAAwB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,KAAK,EAAE,EACxF,wBAAwB,MAAM,CAAC,GAAG,IAAI,kBAAkB,EAAE,EAAE,EAC5D,wBAAwB,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3F,CAAC;IAEF,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0DAA0D,CAAC,CAAC;QAE3E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,KAAK,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAErC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB;IAEzB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;QACjC,CAAC,CAAC,mBAAmB,WAAW,uDAAuD;QACvF,CAAC,CAAC,iEAAiE,CAAC;AACxE,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,KAAiB;IAEnE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,kFAAkF;YAClF,sFAAsF;YACtF,qFAAqF;YACrF,wFAAwF;YACxF,wFAAwF;YACxF,mFAAmF;YACnF,iFAAiF;YACjF,+EAA+E;QACjF,WAAW,EAAE;YACX,OAAO,EAAE,eAAe;YACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;SACjE;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC5D,UAAU,EAAE,QAAQ,CAClB,CAAC,CAAC,MAAM,CAAC;gBACP,4EAA4E;gBAC5E,4EAA4E;gBAC5E,6DAA6D;gBAC7D,KAAK,EAAE,QAAQ,CACb,CAAC,CAAC,KAAK,CAAC;oBACN,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;oBACvD,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;iBACpD,CAAC,CACH;gBACD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC1B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;gBAC5G,4BAA4B,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACnD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC;gBACrG,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACpC,CAAC,CACH,CAAC,QAAQ,CAAC,kFAAkF,CAAC;YAC9F,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YACnH,eAAe,EAAE,QAAQ,CACvB,CAAC,CAAC,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,WAAW,EAAE,CAAC;qBACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBACjB,QAAQ,CAAC,oGAAoG,CAAC;aAClH,CAAC,CACH,CACF,CAAC,QAAQ,CAAC,sFAAsF,CAAC;YAClG,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACpF,iBAAiB,EAAE,QAAQ,CACzB,CAAC,CAAC,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;gBACP,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;gBACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;gBACrB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;gBAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;aAClE,CAAC,CACH,CACF,CAAC,QAAQ,CACR,gGAAgG,CACjG;SACF;QACD,WAAW,EAAE,QAAQ,EAAE;KACxB,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAuB,EAAE;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7E,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE;gBACzC,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;gBACvF,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YAEH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;gBAClB,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EAAE,QAAQ,CAAC,IAAI;gBACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;YAEH,4EAA4E;YAC5E,sEAAsE;YACtE,MAAM,UAAU,GACd,SAAS,CAAC,UAAU,KAAK,IAAI;gBAC3B,CAAC,CAAC,2CAA2C,SAAS,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACvF,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC7C,kFAAkF;YAClF,sFAAsF;YACtF,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/E,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACnG,uFAAuF;YACvF,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAEjF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC;6BAC1F,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;6BAC7B,IAAI,CAAC,MAAM,CAAC;qBAChB;iBACF;gBACD,iBAAiB,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,KAAiB;IAE1E,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,gFAAgF;YAChF,sFAAsF;YACtF,wFAAwF;YACxF,oFAAoF;YACpF,0FAA0F;QAC5F,WAAW,EAAE;YACX,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6FAA6F,CAAC;SAC3G;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YACpF,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxE;YACD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7D,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9E,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClE,OAAO,EAAE,QAAQ,CACf,CAAC,CAAC,KAAK,CACL,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CACzG,CACF,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC/D,aAAa,EAAE,QAAQ,CACrB,CAAC,CAAC,MAAM,CAAC;gBACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;gBACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;gBACjB,iBAAiB,EAAE,CAAC;qBACjB,MAAM,EAAE;qBACR,QAAQ,CAAC,6EAA6E,CAAC;gBAC1F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;gBAC5F,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9E,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACnE,CAAC,CACH,CAAC,QAAQ,CAAC,+FAA+F,CAAC;YAC3G,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACjF;QACD,WAAW,EAAE,QAAQ,EAAE;KACxB,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAuB,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;YAE/C,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAErE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,iBAAiB,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE;aACtD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,OAAwB;IAErD,IAAI,CAAC;QACH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAC1F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,wFAAwF;QACxF,gEAAgE;QAChE,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,KAAK,sBAAsB;YACrC,CAAC,CAAC,mEAAmE;YACrE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClE,CAAC,CAAC,wDAAwD;gBAC1D,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,mBAAmB,CAAC,EAC3B,aAAa,EAAE,MAAM,EACrB,oBAAoB,EAAE,OAAO,GAI9B;IAEC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,qDAAqD,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC5F,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B;YAChH,iHAAiH;KACpH,CAAC;IAEF,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,gGAAgG,CACpI,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,wDAAwD,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvI,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,wFAAwF;AACxF,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,sDAAsD;AACtD,SAAS,aAAa,CAAC,IAAY,EAAE,OAAqC;IAExE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,2BAA2B,IAAI,GAAG,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,OAAsB,EAAE,EAAE,CACtC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC;IAC7H,OAAO;QACL,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG;QAC3F,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;KAC7G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,KAAiB;IAE3E,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,iFAAiF;YACjF,mFAAmF;YACnF,mFAAmF;YACnF,gFAAgF;YAChF,iFAAiF;YACjF,+BAA+B;QACjC,WAAW,EAAE;YACX,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAChE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAC/E,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,SAAS,CAAC;iBACd,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;SAC1F;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACrF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;gBACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,aAAa,EAAE,CAAC;qBACb,MAAM,EAAE;qBACR,QAAQ,CAAC,yEAAyE,CAAC;aACvF,CAAC;YACF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClE,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;gBAC9D,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAC3C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CACxC,kFAAkF,CACnF;aACF,CAAC,CACH;YACD,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,sFAAsF,CAAC;YACnG,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAClC,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,8EAA8E,CAAC;YAC3F,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3F,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gBACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;gBACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;gBACjB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;aACrB,CAAC;SACH;QACD,WAAW,EAAE,QAAQ,EAAE;KACxB,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAuB,EAAE;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAEjF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,QAAQ,EACR;gBACE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5E,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;gBACvF,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAC3C,CAAC;YAEF,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;gBAClB,KAAK,EAAE,sBAAsB;gBAC7B,OAAO,EAAE,QAAQ,CAAC,IAAI;gBACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY;gBAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;gBAC9B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,iBAAiB,EAAE,EAAE,GAAG,MAAM,EAAE;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,KAAiB;IAEtE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,qFAAqF;YACrF,oFAAoF;YACpF,wFAAwF;YACxF,wFAAwF;YACxF,uFAAuF;YACvF,wFAAwF;YACxF,gBAAgB;QAClB,WAAW,EAAE;YACX,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACpF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,4EAA4E,CAAC;YACzF,WAAW,EAAE,CAAC;iBACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,eAAe,CAAC;iBACpB,QAAQ,CAAC,2EAA2E,CAAC;YACxF,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;SACjE;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;gBACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;gBAC1F,QAAQ,EAAE,CAAC;qBACR,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;qBAC1E,QAAQ,CAAC,uEAAuE,CAAC;aACrF,CAAC,CACH;YACD,WAAW,EAAE,CAAC;iBACX,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;gBACvE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;gBACnF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;aACpB,CAAC,CACH;iBACA,QAAQ,CAAC,6EAA6E,CAAC;YAC1F,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SAChG;QACD,WAAW,EAAE,QAAQ,EAAE;KACxB,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAuB,EAAE;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAEnF,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,QAAQ,EACR,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EACnE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACpD,CAAC;YAEF,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE;gBAClB,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,QAAQ,CAAC,IAAI;gBACtB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBAChC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;gBACtC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,iBAAiB,EAAE,EAAE,GAAG,MAAM,EAAE;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,18 +1,18 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type { Root } from '../roots.js';
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
  *
6
6
  * Een prompt en geen tool, omdat het alleen bestaande tools combineert. Een tool kost
7
7
  * context in elke `tools/list`, ook in een sessie die hem nooit gebruikt; een prompt
8
8
  * alleen als iemand hem kiest. Elke vangrail in deze teksten komt uit een proefrun op
9
- * een echt project die zonder die zin misging — zie fase 15.6 en 16 in het plan.
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: Root[]): void;
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
- * ontdekt en niet gecachet — net zoals `withSlot` zijn grens elke keer opnieuw leest,
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: Root[], value: string, exclude?: string): string[];
18
+ export declare function suggestProjects(roots: RootSource, value: string, exclude?: string): Promise<string[]>;
@@ -8,7 +8,7 @@ import { discoverProjects } from '../project.js';
8
8
  * Een prompt en geen tool, omdat het alleen bestaande tools combineert. Een tool kost
9
9
  * context in elke `tools/list`, ook in een sessie die hem nooit gebruikt; een prompt
10
10
  * alleen als iemand hem kiest. Elke vangrail in deze teksten komt uit een proefrun op
11
- * een echt project die zonder die zin misging — zie fase 15.6 en 16 in het plan.
11
+ * een echt project die zonder die zin misging zie fase 15.6 en 16 in het plan.
12
12
  */
13
13
  export function registerPrompts(server, roots) {
14
14
  registerReviewPrompt(server, roots);
@@ -20,12 +20,12 @@ export function registerPrompts(server, roots) {
20
20
  /**
21
21
  * De projecten binnen de roots die passen bij wat er al getypt is: een prefix op het
22
22
  * volledige pad of op de mapnaam, zonder onderscheid in hoofdletters. Elke keer opnieuw
23
- * ontdekt en niet gecachet — net zoals `withSlot` zijn grens elke keer opnieuw leest,
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 = 'Absolute path to the project root; leave empty to run list_projects first';
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 === ''
@@ -83,8 +83,8 @@ function registerReviewPrompt(server, roots) {
83
83
  '',
84
84
  'Then work like this:',
85
85
  metBase
86
- ? `1. \`analyse_changed\` with that project and \`base: "${base}"\` — that picks up everything`
87
- : '1. `analyse_changed` with that project — that only picks up what git has changed,',
86
+ ? `1. \`analyse_changed\` with that project and \`base: "${base}"\` that picks up everything`
87
+ : '1. `analyse_changed` with that project that only picks up what git has changed,',
88
88
  metBase
89
89
  ? ` this branch changed relative to ${base}, including what has not been added yet.`
90
90
  : ' including files that have not been added yet. Do this even if the project',
@@ -97,7 +97,7 @@ function registerReviewPrompt(server, roots) {
97
97
  ' that were added to the baseline, this change hides something: fix it at the',
98
98
  ' source, or say case by case why ignoring is justified here.',
99
99
  '3. Start with the findings marked + (`onChangedLine`): those are on a line you',
100
- ' changed. Then look at the rest of those files — a changed signature causes',
100
+ ' changed. Then look at the rest of those files a changed signature causes',
101
101
  ' errors at the call sites, and you did not touch those lines. Leave whatever',
102
102
  ' was clearly there already. If you changed a signature, a type or a public',
103
103
  ' method, run `analyse_changed` once more with `scope: "project"`: call sites in',
@@ -195,7 +195,7 @@ function registerBaselinePrompt(server, roots) {
195
195
  server.registerPrompt('phpstan_shrink_baseline', {
196
196
  title: 'Shrink the baseline',
197
197
  description: 'Finds what in the baseline is stale, what a new baseline would hide, and which ' +
198
- 'reduction is cheapest — keeping cleaning up and hiding as two separate things.',
198
+ 'reduction is cheapest keeping cleaning up and hiding as two separate things.',
199
199
  argsSchema: { project: projectArgument(roots, PROJECT_DESCRIPTION) },
200
200
  }, ({ project }) => ({
201
201
  messages: [
@@ -215,7 +215,7 @@ function registerBaselinePrompt(server, roots) {
215
215
  ' number too, since a new baseline does not touch them, and those without an',
216
216
  ' identifier hide every error on their line. If it says `hasBaseline: false`,',
217
217
  ' say there is no baseline to shrink, mention the inline count, and stop.',
218
- '2. `unmatched_ignores` — a full analysis; for a large project, pass',
218
+ '2. `unmatched_ignores` a full analysis; for a large project, pass',
219
219
  ' `timeoutSeconds`. Split the outcome into three groups:',
220
220
  ' - entries that no longer match anything (`inBaseline: true`): the error is',
221
221
  ' fixed, the entry can go;',
@@ -255,7 +255,7 @@ function registerBaselinePrompt(server, roots) {
255
255
  /**
256
256
  * Een opruimronde per soort. Nagelopen op `lasouris-lease-shared`: geen `missingType.*`
257
257
  * te kiezen, 11 van de 15 bevindingen in één ontwikkeltool, en `encapsedStringPart`
258
- * dat tot `(string)`-casts uitnodigt — terwijl PHPStans eigen waarschuwing daartegen
258
+ * dat tot `(string)`-casts uitnodigt terwijl PHPStans eigen waarschuwing daartegen
259
259
  * via deze client niet eens meekomt (`instructions` bleef leeg).
260
260
  */
261
261
  function registerKindPrompt(server, roots) {
@@ -305,7 +305,7 @@ function registerKindPrompt(server, roots) {
305
305
  ' separate causes, so check that they point to the same code.',
306
306
  '3. Fix at the source. No `mixed`, no `@phpstan-ignore`, nothing in the',
307
307
  ' baseline, and no cast or `assert()` to silence an error. A cast is only',
308
- ' right if you are sure the value has that type — and then that type belongs',
308
+ ' right if you are sure the value has that type and then that type belongs',
309
309
  ' at the source, not at the place of the finding. To see what PHPStan infers',
310
310
  ' for a value at a given line, use `inspect_type` rather than guessing.',
311
311
  '4. After a fix, analyse again with `identifiers`, without a runId: that gives',
@@ -362,13 +362,13 @@ function registerComparePrompt(server, roots) {
362
362
  ' PHPStan really uses, including what comes from vendor/.',
363
363
  '3. The baseline: `baseline_summary` says whether there is one. Whether it also',
364
364
  ' takes part only becomes clear from the "Note" in `analyse_project` with',
365
- ' `limit: 1` — a baseline that exists but is not included does nothing.',
365
+ ' `limit: 1` a baseline that exists but is not included does nothing.',
366
366
  '4. `server_config`: whether a runner or per-project defaults apply to either of',
367
367
  ' them (memory, timeout, config).',
368
368
  '',
369
369
  'Report only the differences; what is the same explains nothing. If no difference',
370
- 'explains the behaviour — an analysis crashes with a message that seems to make no',
371
- 'sense while the setup is the same — then a stale result cache is the next',
370
+ 'explains the behaviour an analysis crashes with a message that seems to make no',
371
+ 'sense while the setup is the same then a stale result cache is the next',
372
372
  'suspect. Then suggest `clear_result_cache` for that project; it only empties the',
373
373
  'cache, but ask first.',
374
374
  ].join('\n'),