specweave 1.0.355 → 1.0.356

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 (35) hide show
  1. package/dist/src/adapters/claude/adapter.d.ts +3 -4
  2. package/dist/src/adapters/claude/adapter.d.ts.map +1 -1
  3. package/dist/src/adapters/claude/adapter.js +3 -4
  4. package/dist/src/adapters/claude/adapter.js.map +1 -1
  5. package/dist/src/cli/commands/refresh-plugins.d.ts +3 -2
  6. package/dist/src/cli/commands/refresh-plugins.d.ts.map +1 -1
  7. package/dist/src/cli/commands/refresh-plugins.js +3 -8
  8. package/dist/src/cli/commands/refresh-plugins.js.map +1 -1
  9. package/dist/src/cli/commands/update.d.ts.map +1 -1
  10. package/dist/src/cli/commands/update.js +35 -4
  11. package/dist/src/cli/commands/update.js.map +1 -1
  12. package/dist/src/core/doctor/checkers/installation-health-checker.d.ts +14 -15
  13. package/dist/src/core/doctor/checkers/installation-health-checker.d.ts.map +1 -1
  14. package/dist/src/core/doctor/checkers/installation-health-checker.js +78 -148
  15. package/dist/src/core/doctor/checkers/installation-health-checker.js.map +1 -1
  16. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +2 -2
  17. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
  18. package/dist/src/core/lazy-loading/llm-plugin-detector.js +31 -15
  19. package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
  20. package/dist/src/utils/plugin-copier.d.ts +28 -47
  21. package/dist/src/utils/plugin-copier.d.ts.map +1 -1
  22. package/dist/src/utils/plugin-copier.js +85 -155
  23. package/dist/src/utils/plugin-copier.js.map +1 -1
  24. package/package.json +1 -1
  25. package/plugins/specweave/hooks/stop-auto-v5.sh +26 -17
  26. package/plugins/specweave/skills/auto/SKILL.md +15 -1
  27. package/plugins/specweave/skills/do/SKILL.md +3 -3
  28. package/plugins/specweave/skills/increment/SKILL.md +3 -3
  29. package/plugins/specweave/skills/team-build/SKILL.md +1 -1
  30. package/plugins/specweave/skills/team-lead/SKILL.md +7 -5
  31. package/plugins/specweave/skills/validate/SKILL.md +1 -1
  32. package/dist/src/utils/claude-plugin-cli.d.ts +0 -32
  33. package/dist/src/utils/claude-plugin-cli.d.ts.map +0 -1
  34. package/dist/src/utils/claude-plugin-cli.js +0 -74
  35. package/dist/src/utils/claude-plugin-cli.js.map +0 -1
@@ -1,13 +1,16 @@
1
1
  /**
2
- * Installation Health Checker - detects ghost commands, stale cache,
3
- * lockfile integrity issues, and namespace pollution in ~/.claude/
2
+ * Installation Health Checker - detects legacy commands dirs, stale cache,
3
+ * lockfile integrity issues, and plugin cache hook freshness in ~/.claude/
4
+ *
5
+ * @since 1.0.279
6
+ * @updated 1.0.356 - Migrated from commands-based to native plugin cache checks
4
7
  */
5
- import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, unlinkSync, rmSync, copyFileSync, } from 'node:fs';
8
+ import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, rmSync, copyFileSync, } from 'node:fs';
6
9
  import { join } from 'node:path';
7
10
  import { homedir } from 'node:os';
8
11
  import { execSync } from 'node:child_process';
9
12
  import { calculateOverallStatus } from '../types.js';
10
- import { shouldSkipFromCommands, computePluginHash, } from '../../../utils/plugin-copier.js';
13
+ import { computePluginHash } from '../../../utils/plugin-copier.js';
11
14
  export class InstallationHealthChecker {
12
15
  constructor(opts) {
13
16
  this.category = 'Installation Health';
@@ -17,10 +20,9 @@ export class InstallationHealthChecker {
17
20
  }
18
21
  async check(projectRoot, options) {
19
22
  const checks = [];
20
- checks.push(this.checkGhostCommands(options.fix ?? false));
23
+ checks.push(this.checkLegacyCommandsDirs(options.fix ?? false));
21
24
  checks.push(this.checkStaleCacheDirs(options.fix ?? false));
22
25
  checks.push(this.checkLockfileIntegrity(projectRoot, options.fix ?? false));
23
- checks.push(this.checkNamespacePollution(options.fix ?? false));
24
26
  checks.push(this.checkPluginCacheHookFreshness(options.fix ?? false));
25
27
  return {
26
28
  category: this.category,
@@ -29,55 +31,53 @@ export class InstallationHealthChecker {
29
31
  };
30
32
  }
31
33
  /**
32
- * Scan commands dir for ghost .md files that should have been filtered.
33
- * Ghost files = files that shouldSkipFromCommands() would exclude.
34
+ * Detect legacy ~/.claude/commands/<name>/ directories.
35
+ *
36
+ * Since 1.0.356, plugins are installed via Claude Code's native plugin system
37
+ * to ~/.claude/plugins/cache/. Any remaining dirs in ~/.claude/commands/ are
38
+ * legacy artifacts that should be removed to avoid duplicate slash commands.
34
39
  */
35
- checkGhostCommands(fix) {
40
+ checkLegacyCommandsDirs(fix) {
36
41
  if (!existsSync(this.commandsDir)) {
37
42
  return {
38
- name: 'Ghost slash commands',
43
+ name: 'Legacy commands directories',
39
44
  status: 'pass',
40
- message: 'commands directory not found (clean)',
45
+ message: 'no legacy commands directory (clean)',
41
46
  };
42
47
  }
43
- const ghosts = [];
44
- // Walk each plugin directory inside commands/
45
- for (const pluginName of this.listDirs(this.commandsDir)) {
46
- const pluginDir = join(this.commandsDir, pluginName);
47
- const mdFiles = this.walkMdFiles(pluginDir, '');
48
- for (const relPath of mdFiles) {
49
- if (shouldSkipFromCommands(relPath)) {
50
- ghosts.push(join(pluginName, relPath));
51
- }
52
- }
53
- }
54
- if (ghosts.length === 0) {
48
+ const legacyDirs = this.listDirs(this.commandsDir);
49
+ if (legacyDirs.length === 0) {
55
50
  return {
56
- name: 'Ghost slash commands',
51
+ name: 'Legacy commands directories',
57
52
  status: 'pass',
58
- message: 'no ghost commands found',
53
+ message: 'commands directory is empty',
59
54
  };
60
55
  }
61
56
  if (fix) {
62
- for (const ghost of ghosts) {
63
- const fullPath = join(this.commandsDir, ghost);
64
- if (existsSync(fullPath)) {
65
- unlinkSync(fullPath);
57
+ let removed = 0;
58
+ for (const dir of legacyDirs) {
59
+ const fullPath = join(this.commandsDir, dir);
60
+ try {
61
+ rmSync(fullPath, { recursive: true, force: true });
62
+ removed++;
63
+ }
64
+ catch {
65
+ // Best effort
66
66
  }
67
67
  }
68
68
  return {
69
- name: 'Ghost slash commands',
70
- status: 'warn',
71
- message: `${ghosts.length} ghost command(s) found and removed`,
72
- details: ghosts.map(g => `Ghost: ${g}`),
73
- fixSuggestion: `Deleted ${ghosts.length} ghost file(s)`,
69
+ name: 'Legacy commands directories',
70
+ status: removed === legacyDirs.length ? 'pass' : 'warn',
71
+ message: `${removed}/${legacyDirs.length} legacy dir(s) removed (migrated to native plugin cache)`,
72
+ details: legacyDirs.map(d => `Legacy: ~/.claude/commands/${d}`),
73
+ fixSuggestion: 'Restart Claude Code to use native plugin cache',
74
74
  };
75
75
  }
76
76
  return {
77
- name: 'Ghost slash commands',
77
+ name: 'Legacy commands directories',
78
78
  status: 'warn',
79
- message: `${ghosts.length} ghost command(s) detected`,
80
- details: ghosts.map(g => `Ghost: ${g}`),
79
+ message: `${legacyDirs.length} legacy commands dir(s) found (should use native plugin cache)`,
80
+ details: legacyDirs.map(d => `Legacy: ~/.claude/commands/${d}`),
81
81
  fixSuggestion: 'Run: specweave doctor --fix',
82
82
  };
83
83
  }
@@ -119,11 +119,13 @@ export class InstallationHealthChecker {
119
119
  };
120
120
  }
121
121
  if (fix) {
122
+ let removed = 0;
122
123
  for (const dir of tempDirs) {
123
124
  const fullPath = join(this.cacheDir, dir);
124
125
  try {
125
126
  if (existsSync(fullPath)) {
126
127
  rmSync(fullPath, { recursive: true, force: true });
128
+ removed++;
127
129
  }
128
130
  }
129
131
  catch {
@@ -132,10 +134,10 @@ export class InstallationHealthChecker {
132
134
  }
133
135
  return {
134
136
  name: 'Stale cache directories',
135
- status: 'warn',
136
- message: `${tempDirs.length} stale dir(s) found and removed`,
137
+ status: removed === tempDirs.length ? 'pass' : 'warn',
138
+ message: `${removed}/${tempDirs.length} stale dir(s) removed`,
137
139
  details,
138
- fixSuggestion: `Deleted ${tempDirs.length} temp_local dir(s)`,
140
+ fixSuggestion: `Deleted ${removed} temp_local dir(s)`,
139
141
  };
140
142
  }
141
143
  return {
@@ -147,7 +149,8 @@ export class InstallationHealthChecker {
147
149
  };
148
150
  }
149
151
  /**
150
- * Verify installed command hashes match vskill.lock entries.
152
+ * Verify installed plugin hashes match vskill.lock entries.
153
+ * Checks the native plugin cache (~/.claude/plugins/cache/specweave/<name>/).
151
154
  */
152
155
  checkLockfileIntegrity(projectRoot, fix) {
153
156
  const lockPath = join(projectRoot, 'vskill.lock');
@@ -180,13 +183,22 @@ export class InstallationHealthChecker {
180
183
  const mismatches = [];
181
184
  const missing = [];
182
185
  for (const [name, entry] of Object.entries(lockfile.skills)) {
183
- const skillDir = join(this.commandsDir, name);
184
- if (!existsSync(skillDir)) {
186
+ // Check native plugin cache first, fall back to legacy commands dir
187
+ const cachePluginDir = join(this.cacheDir, 'specweave', name);
188
+ const legacyPluginDir = join(this.commandsDir, name);
189
+ let pluginDir = null;
190
+ if (existsSync(cachePluginDir)) {
191
+ pluginDir = cachePluginDir;
192
+ }
193
+ else if (existsSync(legacyPluginDir)) {
194
+ pluginDir = legacyPluginDir;
195
+ }
196
+ if (!pluginDir) {
185
197
  missing.push(name);
186
198
  continue;
187
199
  }
188
200
  try {
189
- const currentHash = computePluginHash(skillDir);
201
+ const currentHash = computePluginHash(pluginDir);
190
202
  if (currentHash !== entry.sha) {
191
203
  mismatches.push(`${name}: expected ${entry.sha}, got ${currentHash}`);
192
204
  }
@@ -196,14 +208,21 @@ export class InstallationHealthChecker {
196
208
  }
197
209
  }
198
210
  if (missing.length > 0) {
211
+ const allDetails = [
212
+ ...missing.map(m => `Missing: ${m}`),
213
+ ...mismatches.map(m => `Mismatch: ${m}`),
214
+ ];
215
+ const mismatchNote = mismatches.length > 0
216
+ ? ` (also ${mismatches.length} hash mismatch(es))`
217
+ : '';
199
218
  if (fix) {
200
219
  try {
201
220
  execSync('specweave refresh-plugins', { stdio: 'pipe' });
202
221
  return {
203
222
  name: 'Lockfile integrity',
204
223
  status: 'warn',
205
- message: `${missing.length} skill(s) were missing, ran refresh-plugins`,
206
- details: missing.map(m => `Missing: ${m}`),
224
+ message: `${missing.length} skill(s) were missing${mismatchNote}, ran refresh-plugins`,
225
+ details: allDetails,
207
226
  fixSuggestion: 'Ran: specweave refresh-plugins',
208
227
  };
209
228
  }
@@ -212,6 +231,7 @@ export class InstallationHealthChecker {
212
231
  name: 'Lockfile integrity',
213
232
  status: 'fail',
214
233
  message: `refresh-plugins failed: ${err instanceof Error ? err.message : 'unknown error'}`,
234
+ details: allDetails,
215
235
  fixSuggestion: 'Run: specweave refresh-plugins',
216
236
  };
217
237
  }
@@ -219,8 +239,8 @@ export class InstallationHealthChecker {
219
239
  return {
220
240
  name: 'Lockfile integrity',
221
241
  status: 'fail',
222
- message: `${missing.length} skill(s) missing from commands dir`,
223
- details: missing.map(m => `Missing: ${m}`),
242
+ message: `${missing.length} skill(s) missing from plugin cache${mismatchNote}`,
243
+ details: allDetails,
224
244
  fixSuggestion: 'Run: specweave refresh-plugins',
225
245
  };
226
246
  }
@@ -230,10 +250,12 @@ export class InstallationHealthChecker {
230
250
  try {
231
251
  const updatedSkills = {};
232
252
  for (const [name, entry] of Object.entries(lockfile.skills)) {
233
- const skillDir = join(this.commandsDir, name);
234
- if (existsSync(skillDir)) {
253
+ const cachePluginDir = join(this.cacheDir, 'specweave', name);
254
+ const legacyDir = join(this.commandsDir, name);
255
+ const dir = existsSync(cachePluginDir) ? cachePluginDir : existsSync(legacyDir) ? legacyDir : null;
256
+ if (dir) {
235
257
  try {
236
- updatedSkills[name] = { ...entry, sha: computePluginHash(skillDir) };
258
+ updatedSkills[name] = { ...entry, sha: computePluginHash(dir) };
237
259
  }
238
260
  catch {
239
261
  updatedSkills[name] = entry;
@@ -243,7 +265,7 @@ export class InstallationHealthChecker {
243
265
  updatedSkills[name] = entry;
244
266
  }
245
267
  }
246
- writeFileSync(lockPath, JSON.stringify({ ...lockfile, skills: updatedSkills }, null, 2), 'utf-8');
268
+ writeFileSync(lockPath, JSON.stringify({ ...lockfile, skills: updatedSkills }, null, 2) + '\n', 'utf-8');
247
269
  return {
248
270
  name: 'Lockfile integrity',
249
271
  status: 'pass',
@@ -275,65 +297,6 @@ export class InstallationHealthChecker {
275
297
  message: 'all skill hashes match lockfile',
276
298
  };
277
299
  }
278
- /**
279
- * Detect .md files inside internal plugin directories that should not
280
- * be treated as slash commands by Claude Code.
281
- */
282
- checkNamespacePollution(fix) {
283
- if (!existsSync(this.commandsDir)) {
284
- return {
285
- name: 'Command namespace pollution',
286
- status: 'pass',
287
- message: 'commands directory not found (clean)',
288
- };
289
- }
290
- const pollutants = [];
291
- for (const pluginName of this.listDirs(this.commandsDir)) {
292
- const pluginDir = join(this.commandsDir, pluginName);
293
- const mdFiles = this.walkMdFiles(pluginDir, '');
294
- for (const relPath of mdFiles) {
295
- // Ghost commands (PLUGIN.md, README.md, FRESHNESS.md) are handled
296
- // by checkGhostCommands. Here we catch the remaining pollution:
297
- // files in internal dirs (knowledge-base/, lib/, templates/, etc.)
298
- const filename = relPath.split('/').pop() ?? '';
299
- const isGhostFile = filename === 'PLUGIN.md' ||
300
- filename === 'README.md' ||
301
- filename === 'FRESHNESS.md';
302
- if (!isGhostFile && shouldSkipFromCommands(relPath)) {
303
- pollutants.push(join(pluginName, relPath));
304
- }
305
- }
306
- }
307
- if (pollutants.length === 0) {
308
- return {
309
- name: 'Command namespace pollution',
310
- status: 'pass',
311
- message: 'no namespace pollution found',
312
- };
313
- }
314
- if (fix) {
315
- for (const p of pollutants) {
316
- const fullPath = join(this.commandsDir, p);
317
- if (existsSync(fullPath)) {
318
- unlinkSync(fullPath);
319
- }
320
- }
321
- return {
322
- name: 'Command namespace pollution',
323
- status: 'warn',
324
- message: `${pollutants.length} polluting file(s) found and removed`,
325
- details: pollutants.map(p => `Pollution: ${p}`),
326
- fixSuggestion: `Deleted ${pollutants.length} polluting file(s)`,
327
- };
328
- }
329
- return {
330
- name: 'Command namespace pollution',
331
- status: 'warn',
332
- message: `${pollutants.length} polluting file(s) detected`,
333
- details: pollutants.map(p => `Pollution: ${p}`),
334
- fixSuggestion: 'Run: specweave doctor --fix',
335
- };
336
- }
337
300
  /**
338
301
  * Detect stale hooks in ~/.claude/plugins/cache/specweave/.
339
302
  *
@@ -345,8 +308,7 @@ export class InstallationHealthChecker {
345
308
  * @since 1.0.306
346
309
  */
347
310
  checkPluginCacheHookFreshness(fix) {
348
- const home = homedir();
349
- const pluginCacheBase = join(home, '.claude', 'plugins', 'cache', 'specweave', 'sw');
311
+ const pluginCacheBase = join(this.cacheDir, 'specweave', 'sw');
350
312
  if (!existsSync(pluginCacheBase)) {
351
313
  return {
352
314
  name: 'Plugin cache hook freshness',
@@ -430,8 +392,7 @@ export class InstallationHealthChecker {
430
392
  * Resolution order:
431
393
  * 1. Walk up from __dirname to find package.json with name "specweave"
432
394
  * 2. Global npm install via `npm root -g`
433
- * 3. ~/.claude/commands/sw/hooks/ (installed by specweave refresh-plugins)
434
- * 4. ~/.claude/plugins/marketplaces/specweave/
395
+ * 3. ~/.claude/plugins/marketplaces/specweave/
435
396
  */
436
397
  findSourceHookPath() {
437
398
  const hookRelPath = join('plugins', 'specweave', 'hooks', 'user-prompt-submit.sh');
@@ -460,19 +421,14 @@ export class InstallationHealthChecker {
460
421
  catch { /* fallback */ }
461
422
  // 2. Global npm install
462
423
  try {
463
- const { execSync: exec } = require('node:child_process');
464
- const npmRoot = exec('npm root -g', { encoding: 'utf-8', timeout: 5000 }).trim();
424
+ const npmRoot = execSync('npm root -g', { encoding: 'utf-8', timeout: 5000 }).trim();
465
425
  const globalPath = join(npmRoot, 'specweave', hookRelPath);
466
426
  if (existsSync(globalPath))
467
427
  return globalPath;
468
428
  }
469
429
  catch { /* fallback */ }
470
- // 3. ~/.claude/commands/sw/hooks/ (installed by refresh-plugins)
430
+ // 3. Marketplace path
471
431
  const home = homedir();
472
- const commandsHookPath = join(home, '.claude', 'commands', 'sw', 'hooks', 'user-prompt-submit.sh');
473
- if (existsSync(commandsHookPath))
474
- return commandsHookPath;
475
- // 4. Marketplace path
476
432
  const marketplacePath = join(home, '.claude', 'plugins', 'marketplaces', 'specweave', hookRelPath);
477
433
  if (existsSync(marketplacePath))
478
434
  return marketplacePath;
@@ -495,31 +451,5 @@ export class InstallationHealthChecker {
495
451
  return [];
496
452
  }
497
453
  }
498
- /** Recursively collect all .md file relative paths under a directory. */
499
- walkMdFiles(dir, prefix) {
500
- const results = [];
501
- try {
502
- for (const entry of readdirSync(dir)) {
503
- const fullPath = join(dir, entry);
504
- const relPath = prefix ? `${prefix}/${entry}` : entry;
505
- try {
506
- const stat = statSync(fullPath);
507
- if (stat.isDirectory()) {
508
- results.push(...this.walkMdFiles(fullPath, relPath));
509
- }
510
- else if (stat.isFile() && entry.endsWith('.md')) {
511
- results.push(relPath);
512
- }
513
- }
514
- catch {
515
- // Skip unreadable entries
516
- }
517
- }
518
- }
519
- catch {
520
- // Skip unreadable directories
521
- }
522
- return results;
523
- }
524
454
  }
525
455
  //# sourceMappingURL=installation-health-checker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"installation-health-checker.js","sourceRoot":"","sources":["../../../../../src/core/doctor/checkers/installation-health-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installation-health-checker.js","sourceRoot":"","sources":["../../../../../src/core/doctor/checkers/installation-health-checker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,MAAM,EACN,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAOpE,MAAM,OAAO,yBAAyB;IAKpC,YAAY,IAAgC;QAJ5C,aAAQ,GAAG,qBAAqB,CAAC;QAK/B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,KAAK,CACT,WAAmB,EACnB,OAAsB;QAEtB,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAEtE,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC;YACtC,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,GAAY;QAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,sCAAsC;aAChD,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,6BAA6B;aACvC,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnD,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,OAAO,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACvD,OAAO,EAAE,GAAG,OAAO,IAAI,UAAU,CAAC,MAAM,0DAA0D;gBAClG,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBAC/D,aAAa,EAAE,gDAAgD;aAChE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,6BAA6B;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,gEAAgE;YAC7F,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC;YAC/D,aAAa,EAAE,6BAA6B;SAC7C,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,GAAY;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,mCAAmC;aAC7C,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,sCAAsC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAC/C,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,KAAK,QAAQ,QAAQ,CAAC,CAAC;gBACjE,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,4BAA4B;aACtC,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACnD,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,yEAAyE;gBAC3E,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACrD,OAAO,EAAE,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,uBAAuB;gBAC7D,OAAO;gBACP,aAAa,EAAE,WAAW,OAAO,oBAAoB;aACtD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,yBAAyB;YAC/B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,8BAA8B;YACzD,OAAO;YACP,aAAa,EAAE,6BAA6B;SAC7C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAC5B,WAAmB,EACnB,GAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,sBAAsB;aAChC,CAAC;QACJ,CAAC;QAED,IAAI,QAKH,CAAC;QACF,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,6BAA6B;gBACtC,aAAa,EAAE,gCAAgC;aAChD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,+BAA+B;aACzC,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,oEAAoE;YACpE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,SAAS,GAAkB,IAAI,CAAC;YAEpC,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/B,SAAS,GAAG,cAAc,CAAC;YAC7B,CAAC;iBAAM,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,SAAS,GAAG,eAAe,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACjD,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;oBAC9B,UAAU,CAAC,IAAI,CACb,GAAG,IAAI,cAAc,KAAK,CAAC,GAAG,SAAS,WAAW,EAAE,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,0BAA0B,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG;gBACjB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;aACzC,CAAC;YACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;gBACxC,CAAC,CAAC,UAAU,UAAU,CAAC,MAAM,qBAAqB;gBAClD,CAAC,CAAC,EAAE,CAAC;YAEP,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC;oBACH,QAAQ,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBACzD,OAAO;wBACL,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,yBAAyB,YAAY,uBAAuB;wBACtF,OAAO,EAAE,UAAU;wBACnB,aAAa,EAAE,gCAAgC;qBAChD,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;wBAC1F,OAAO,EAAE,UAAU;wBACnB,aAAa,EAAE,gCAAgC;qBAChD,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,sCAAsC,YAAY,EAAE;gBAC9E,OAAO,EAAE,UAAU;gBACnB,aAAa,EAAE,gCAAgC;aAChD,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,GAAG,EAAE,CAAC;gBACR,4DAA4D;gBAC5D,IAAI,CAAC;oBACH,MAAM,aAAa,GAA2B,EAAE,CAAC;oBACjD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;wBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;wBAC/C,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;wBACnG,IAAI,GAAG,EAAE,CAAC;4BACR,IAAI,CAAC;gCACH,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;4BAClE,CAAC;4BAAC,MAAM,CAAC;gCACP,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;4BAC9B,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;wBAC9B,CAAC;oBACH,CAAC;oBACD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;oBACzG,OAAO;wBACL,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,0CAA0C;wBACvE,aAAa,EAAE,yBAAyB;qBACzC,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;wBAC7F,OAAO,EAAE,UAAU;wBACnB,aAAa,EAAE,uBAAuB;qBACvC,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,6BAA6B;gBAC1D,OAAO,EAAE,UAAU;gBACnB,aAAa,EAAE,6BAA6B;aAC7C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,iCAAiC;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACK,6BAA6B,CAAC,GAAY;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,yCAAyC;aACnD,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,sDAAsD;aAChE,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,aAAa,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,iCAAiC;aAC3C,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;YACvF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,SAAS;YAEtC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACxD,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;oBACpC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,mCAAmC;aAC7C,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;oBACvC,KAAK,EAAE,CAAC;gBACV,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,KAAK,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACrD,OAAO,EAAE,GAAG,KAAK,IAAI,UAAU,CAAC,MAAM,oCAAoC;gBAC1E,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7C,aAAa,EAAE,8CAA8C;aAC9D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,6BAA6B;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,gCAAgC;YAC7D,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,aAAa,EAAE,mDAAmD;SACnE,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAEnF,4BAA4B;QAC5B,IAAI,CAAC;YACH,IAAI,GAAG,GAAG,SAAS,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBAC1C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;wBACvD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;4BACxC,IAAI,UAAU,CAAC,QAAQ,CAAC;gCAAE,OAAO,QAAQ,CAAC;wBAC5C,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC5B,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC/B,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM;gBAC1B,GAAG,GAAG,MAAM,CAAC;YACf,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAE1B,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,UAAU,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAE1B,sBAAsB;QACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACnG,IAAI,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO,eAAe,CAAC;QAExD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAE1E,+CAA+C;IACvC,QAAQ,CAAC,GAAW;QAC1B,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACjC,IAAI,CAAC;oBACH,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -326,14 +326,14 @@ activeIncrements?: ActiveIncrementContext[]): Promise<LLMDetectionResult>;
326
326
  * @param timeout - Timeout in milliseconds
327
327
  * @returns Installation result
328
328
  */
329
- export declare function installPluginViaCli(pluginName: string, timeout?: number): Promise<PluginInstallResult>;
329
+ export declare function installPluginViaCli(pluginName: string, timeout?: number, skillFilter?: string): Promise<PluginInstallResult>;
330
330
  /**
331
331
  * Install multiple plugins via CLI
332
332
  *
333
333
  * @param plugins - Array of plugin names to install
334
334
  * @returns Array of installation results
335
335
  */
336
- export declare function installPluginsViaCli(plugins: string[]): Promise<PluginInstallResult[]>;
336
+ export declare function installPluginsViaCli(plugins: string[], skillInvocation?: SkillInvocation): Promise<PluginInstallResult[]>;
337
337
  /**
338
338
  * Full pipeline: detect plugins from prompt and optionally install them
339
339
  *
@@ -1 +1 @@
1
- {"version":3,"file":"llm-plugin-detector.d.ts","sourceRoot":"","sources":["../../../../src/core/lazy-loading/llm-plugin-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-plugin-detector.d.ts","sourceRoot":"","sources":["../../../../src/core/lazy-loading/llm-plugin-detector.ts"],"names":[],"mappings":"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"}
@@ -137,7 +137,7 @@ export const SPECWEAVE_PLUGINS = [
137
137
  */
138
138
  export const VSKILL_PLUGINS = [
139
139
  'frontend', // React, Vue, Angular, Next.js, UI components
140
- 'backend', // Node.js, Express, NestJS, APIs, databases
140
+ 'backend', // Java Spring Boot, Rust Axum — specialized backend skills
141
141
  'testing', // Jest, Vitest, Playwright, E2E, unit tests
142
142
  'mobile', // React Native, iOS, Android, Expo
143
143
  'infra', // Terraform, AWS, Azure, GCP, Docker, CI/CD
@@ -287,7 +287,7 @@ PLUGINS - Use specweave (sw-*) or vskill domain plugin names
287
287
  ═══════════════════════════════════════════════════════════════
288
288
 
289
289
  frontend: React, Vue, Angular, Next.js, Svelte, UI, dashboard, components, Tailwind
290
- backend: API, REST, GraphQL, .NET, C#, Node.js, Express, FastAPI, Django, Spring Boot, Go, PostgreSQL, MongoDB
290
+ backend: Java, Spring Boot, Rust, Axum (ONLY for Java/Spring or Rust backends — NOT for Node.js, Express, Python, Go, .NET)
291
291
  payments: Stripe, PayPal, checkout, billing, subscriptions
292
292
  testing: test, testing, unit test, integration test, coverage, TDD, Jest, Vitest, Playwright, Cypress, E2E, QA, test strategy, code coverage, test automation
293
293
  infra: Terraform, Docker, AWS, CI/CD, CloudFormation (ONLY if explicit)
@@ -371,8 +371,8 @@ EXPLICIT OPT-OUT → action: "none":
371
371
  EXAMPLES (one per action type — keep prompt size minimal)
372
372
  ═══════════════════════════════════════════════════════════════
373
373
 
374
- "Create React dashboard with Stripe checkout and .NET backend"
375
- {"plugins":["frontend","backend","payments"],"confidence":0.95,"reasoning":"React→frontend, .NET→backend, Stripe→payments","increment":{"action":"new","confidence":0.95,"mandatory":true,"suggestedName":"react-dashboard-stripe","reasoning":"Multi-component full-stack feature"}}
374
+ "Create React dashboard with Stripe checkout and Spring Boot backend"
375
+ {"plugins":["frontend","backend","payments"],"confidence":0.95,"reasoning":"React→frontend, Spring Boot→backend, Stripe→payments","increment":{"action":"new","confidence":0.95,"mandatory":true,"suggestedName":"react-dashboard-stripe","reasoning":"Multi-component full-stack feature"}}
376
376
 
377
377
  "The auth feature is broken again"
378
378
  {"plugins":[],"confidence":0.7,"reasoning":"No specific tech mentioned","increment":{"action":"reopen","confidence":0.8,"mandatory":false,"relatedKeyword":"auth","reasoning":"Related to previous auth work"}}
@@ -452,8 +452,8 @@ SKILL INVOCATION RULES (pick the most specific skill):
452
452
 
453
453
  SKILL EXAMPLES:
454
454
 
455
- "Build .NET API with Entity Framework"
456
- {"plugins":["backend"],"confidence":0.95,"reasoning":".NET→backend","increment":{"action":"new","confidence":0.9,"mandatory":true,"suggestedName":"dotnet-api","reasoning":"New API"},"skillInvocation":{"skill":"backend:dotnet","reason":".NET patterns and EF Core","mandatory":true}}
455
+ "Build Spring Boot API with JPA"
456
+ {"plugins":["backend"],"confidence":0.95,"reasoning":"Spring Boot→backend","increment":{"action":"new","confidence":0.9,"mandatory":true,"suggestedName":"spring-boot-api","reasoning":"New API"},"skillInvocation":{"skill":"backend:java-spring","reason":"Spring Boot patterns and JPA","mandatory":true}}
457
457
 
458
458
  "Write unit tests for the auth service"
459
459
  {"plugins":["testing"],"confidence":0.95,"reasoning":"Unit testing","increment":{"action":"small_fix","confidence":0.7,"mandatory":false,"reasoning":"Testing extends existing work"},"skillInvocation":{"skill":"testing:unit","reason":"Vitest/Jest patterns and TDD","mandatory":true}}
@@ -945,17 +945,23 @@ async function installSpecweaveLocalPlugin(pluginName, timeout) {
945
945
  * @param timeout - Timeout in milliseconds
946
946
  * @returns Installation result
947
947
  */
948
- async function installVskillRepoPlugin(pluginName, timeout) {
948
+ async function installVskillRepoPlugin(pluginName, timeout, skillFilter) {
949
949
  try {
950
950
  const vskillPath = resolveVskillCliPath();
951
- const result = spawnSync('node', [
951
+ const args = [
952
952
  vskillPath,
953
953
  'install',
954
954
  '--repo', 'anton-abyzov/vskill',
955
955
  '--plugin', pluginName,
956
956
  '--force',
957
957
  '--yes',
958
- ], {
958
+ ];
959
+ // Filter skills within the plugin to only install relevant ones
960
+ if (skillFilter) {
961
+ args.push('--only-skills', skillFilter);
962
+ logger.debug(`Installing ${pluginName} with skill filter: ${skillFilter}`);
963
+ }
964
+ const result = spawnSync('node', args, {
959
965
  encoding: 'utf8',
960
966
  timeout,
961
967
  maxBuffer: 1024 * 1024,
@@ -992,7 +998,7 @@ async function installVskillRepoPlugin(pluginName, timeout) {
992
998
  * @param timeout - Timeout in milliseconds
993
999
  * @returns Installation result
994
1000
  */
995
- export async function installPluginViaCli(pluginName, timeout = 30000) {
1001
+ export async function installPluginViaCli(pluginName, timeout = 30000, skillFilter) {
996
1002
  // v2.1.0: Accept both specweave and vskill plugins
997
1003
  if (!isKnownPlugin(pluginName)) {
998
1004
  return {
@@ -1021,7 +1027,7 @@ export async function installPluginViaCli(pluginName, timeout = 30000) {
1021
1027
  }
1022
1028
  // Route to correct installer based on plugin source
1023
1029
  if (isVskillPlugin(pluginName)) {
1024
- return installVskillRepoPlugin(pluginName, timeout);
1030
+ return installVskillRepoPlugin(pluginName, timeout, skillFilter);
1025
1031
  }
1026
1032
  return installSpecweaveLocalPlugin(pluginName, timeout);
1027
1033
  }
@@ -1031,10 +1037,20 @@ export async function installPluginViaCli(pluginName, timeout = 30000) {
1031
1037
  * @param plugins - Array of plugin names to install
1032
1038
  * @returns Array of installation results
1033
1039
  */
1034
- export async function installPluginsViaCli(plugins) {
1040
+ export async function installPluginsViaCli(plugins, skillInvocation) {
1035
1041
  const results = [];
1042
+ // Extract sub-skill filter from skillInvocation (e.g., "backend:dotnet" → "dotnet")
1043
+ let skillFilterMap;
1044
+ if (skillInvocation?.skill && skillInvocation.skill.includes(':')) {
1045
+ const [pluginPart, skillPart] = skillInvocation.skill.split(':');
1046
+ if (pluginPart && skillPart) {
1047
+ skillFilterMap = new Map([[pluginPart, skillPart]]);
1048
+ logger.debug(`Skill filter from invocation: ${pluginPart} → only install ${skillPart}`);
1049
+ }
1050
+ }
1036
1051
  for (const plugin of plugins) {
1037
- const result = await installPluginViaCli(plugin);
1052
+ const skillFilter = skillFilterMap?.get(plugin);
1053
+ const result = await installPluginViaCli(plugin, 30000, skillFilter);
1038
1054
  results.push(result);
1039
1055
  // Log progress
1040
1056
  if (result.success) {
@@ -1095,8 +1111,8 @@ export async function detectAndInstallPlugins(userPrompt) {
1095
1111
  suggestOnly: true,
1096
1112
  };
1097
1113
  }
1098
- // Step 3: Install detected plugins (original behavior)
1099
- const installations = await installPluginsViaCli(detection.plugins);
1114
+ // Step 3: Install detected plugins with skill-level filtering from LLM detection
1115
+ const installations = await installPluginsViaCli(detection.plugins, detection.skillInvocation);
1100
1116
  return {
1101
1117
  detection,
1102
1118
  installations,