specweave 1.0.306 → 1.0.308
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/bin/specweave.js +2 -0
- package/dist/dashboard/assets/index-8JtB0x7k.js +11 -0
- package/dist/dashboard/assets/index-BkMbqwTc.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/src/cli/commands/create-increment.d.ts.map +1 -1
- package/dist/src/cli/commands/create-increment.js +3 -0
- package/dist/src/cli/commands/create-increment.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-umbrella.d.ts.map +1 -1
- package/dist/src/cli/commands/migrate-to-umbrella.js +90 -0
- package/dist/src/cli/commands/migrate-to-umbrella.js.map +1 -1
- package/dist/src/cli/commands/update.d.ts.map +1 -1
- package/dist/src/cli/commands/update.js +16 -0
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/core/doctor/checkers/installation-health-checker.d.ts +21 -0
- package/dist/src/core/doctor/checkers/installation-health-checker.d.ts.map +1 -1
- package/dist/src/core/doctor/checkers/installation-health-checker.js +146 -1
- package/dist/src/core/doctor/checkers/installation-health-checker.js.map +1 -1
- package/dist/src/core/fabric/security-scanner.d.ts.map +1 -1
- package/dist/src/core/fabric/security-scanner.js +35 -17
- package/dist/src/core/fabric/security-scanner.js.map +1 -1
- package/dist/src/core/hooks/LifecycleHookDispatcher.d.ts +67 -0
- package/dist/src/core/hooks/LifecycleHookDispatcher.d.ts.map +1 -0
- package/dist/src/core/hooks/LifecycleHookDispatcher.js +156 -0
- package/dist/src/core/hooks/LifecycleHookDispatcher.js.map +1 -0
- package/dist/src/core/increment/status-commands.d.ts.map +1 -1
- package/dist/src/core/increment/status-commands.js +11 -0
- package/dist/src/core/increment/status-commands.js.map +1 -1
- package/dist/src/core/migration/spec-project-mapper.d.ts +51 -0
- package/dist/src/core/migration/spec-project-mapper.d.ts.map +1 -0
- package/dist/src/core/migration/spec-project-mapper.js +299 -0
- package/dist/src/core/migration/spec-project-mapper.js.map +1 -0
- package/dist/src/core/migration/types.d.ts +2 -0
- package/dist/src/core/migration/types.d.ts.map +1 -1
- package/dist/src/dashboard/server/command-runner.d.ts +4 -2
- package/dist/src/dashboard/server/command-runner.d.ts.map +1 -1
- package/dist/src/dashboard/server/command-runner.js +3 -3
- package/dist/src/dashboard/server/command-runner.js.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.d.ts.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.js +70 -23
- package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
- package/dist/src/dashboard/server/data/cost-aggregator.d.ts +7 -4
- package/dist/src/dashboard/server/data/cost-aggregator.d.ts.map +1 -1
- package/dist/src/dashboard/server/data/cost-aggregator.js +67 -30
- package/dist/src/dashboard/server/data/cost-aggregator.js.map +1 -1
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts +8 -2
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts.map +1 -1
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.js +72 -6
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.js.map +1 -1
- package/dist/src/dashboard/server/router.d.ts.map +1 -1
- package/dist/src/dashboard/server/router.js +1 -0
- package/dist/src/dashboard/server/router.js.map +1 -1
- package/dist/src/dashboard/types.d.ts +26 -6
- package/dist/src/dashboard/types.d.ts.map +1 -1
- package/dist/src/sync/github-reconciler.d.ts +2 -1
- package/dist/src/sync/github-reconciler.d.ts.map +1 -1
- package/dist/src/sync/github-reconciler.js +13 -7
- package/dist/src/sync/github-reconciler.js.map +1 -1
- package/dist/src/sync/sync-metadata.d.ts +9 -0
- package/dist/src/sync/sync-metadata.d.ts.map +1 -1
- package/dist/src/sync/sync-metadata.js +24 -0
- package/dist/src/sync/sync-metadata.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/hooks/user-prompt-submit.sh +10 -4
- package/plugins/specweave/lib/vendor/sync/github-reconciler.d.ts +2 -1
- package/plugins/specweave/lib/vendor/sync/github-reconciler.js +13 -7
- package/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -1
- package/plugins/specweave/skills/done/SKILL.md +0 -5
- package/dist/dashboard/assets/index-BGpS5omm.css +0 -1
- package/dist/dashboard/assets/index-BvNL0nTV.js +0 -11
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Installation Health Checker - detects ghost commands, stale cache,
|
|
3
3
|
* lockfile integrity issues, and namespace pollution in ~/.claude/
|
|
4
4
|
*/
|
|
5
|
-
import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, unlinkSync, rmSync, } from 'node:fs';
|
|
5
|
+
import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, unlinkSync, rmSync, copyFileSync, } from 'node:fs';
|
|
6
6
|
import { join } from 'node:path';
|
|
7
7
|
import { homedir } from 'node:os';
|
|
8
8
|
import { execSync } from 'node:child_process';
|
|
@@ -21,6 +21,7 @@ export class InstallationHealthChecker {
|
|
|
21
21
|
checks.push(this.checkStaleCacheDirs(options.fix ?? false));
|
|
22
22
|
checks.push(this.checkLockfileIntegrity(projectRoot, options.fix ?? false));
|
|
23
23
|
checks.push(this.checkNamespacePollution(options.fix ?? false));
|
|
24
|
+
checks.push(this.checkPluginCacheHookFreshness(options.fix ?? false));
|
|
24
25
|
return {
|
|
25
26
|
category: this.category,
|
|
26
27
|
status: calculateOverallStatus(checks),
|
|
@@ -328,6 +329,150 @@ export class InstallationHealthChecker {
|
|
|
328
329
|
fixSuggestion: 'Run: specweave doctor --fix',
|
|
329
330
|
};
|
|
330
331
|
}
|
|
332
|
+
/**
|
|
333
|
+
* Detect stale hooks in ~/.claude/plugins/cache/specweave/.
|
|
334
|
+
*
|
|
335
|
+
* Claude Code's plugin system copies hooks to its own cache directory when
|
|
336
|
+
* `claude plugin install` runs. If the source (npm package) is updated but
|
|
337
|
+
* the cache isn't refreshed, hooks run stale code. This check compares the
|
|
338
|
+
* UserPromptSubmit hook in the cache against the source and fixes mismatches.
|
|
339
|
+
*
|
|
340
|
+
* @since 1.0.306
|
|
341
|
+
*/
|
|
342
|
+
checkPluginCacheHookFreshness(fix) {
|
|
343
|
+
const home = homedir();
|
|
344
|
+
const pluginCacheBase = join(home, '.claude', 'plugins', 'cache', 'specweave', 'sw');
|
|
345
|
+
if (!existsSync(pluginCacheBase)) {
|
|
346
|
+
return {
|
|
347
|
+
name: 'Plugin cache hook freshness',
|
|
348
|
+
status: 'pass',
|
|
349
|
+
message: 'no specweave plugin cache found (clean)',
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
// Find the specweave npm package root (walk up from this file)
|
|
353
|
+
const sourceHookPath = this.findSourceHookPath();
|
|
354
|
+
if (!sourceHookPath) {
|
|
355
|
+
return {
|
|
356
|
+
name: 'Plugin cache hook freshness',
|
|
357
|
+
status: 'skip',
|
|
358
|
+
message: 'could not locate source hook (npm package not found)',
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
const staleHooks = [];
|
|
362
|
+
let sourceContent;
|
|
363
|
+
try {
|
|
364
|
+
sourceContent = readFileSync(sourceHookPath, 'utf-8');
|
|
365
|
+
}
|
|
366
|
+
catch {
|
|
367
|
+
return {
|
|
368
|
+
name: 'Plugin cache hook freshness',
|
|
369
|
+
status: 'skip',
|
|
370
|
+
message: 'could not read source hook file',
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
// Check each version dir in the cache (usually just one: 1.0.0)
|
|
374
|
+
for (const versionDir of this.listDirs(pluginCacheBase)) {
|
|
375
|
+
const cachedHook = join(pluginCacheBase, versionDir, 'hooks', 'user-prompt-submit.sh');
|
|
376
|
+
if (!existsSync(cachedHook))
|
|
377
|
+
continue;
|
|
378
|
+
try {
|
|
379
|
+
const cachedContent = readFileSync(cachedHook, 'utf-8');
|
|
380
|
+
if (cachedContent !== sourceContent) {
|
|
381
|
+
staleHooks.push(cachedHook);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
// Can't read = skip
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (staleHooks.length === 0) {
|
|
389
|
+
return {
|
|
390
|
+
name: 'Plugin cache hook freshness',
|
|
391
|
+
status: 'pass',
|
|
392
|
+
message: 'plugin cache hooks are up to date',
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
if (fix) {
|
|
396
|
+
let fixed = 0;
|
|
397
|
+
for (const hookPath of staleHooks) {
|
|
398
|
+
try {
|
|
399
|
+
copyFileSync(sourceHookPath, hookPath);
|
|
400
|
+
fixed++;
|
|
401
|
+
}
|
|
402
|
+
catch {
|
|
403
|
+
// Best effort
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return {
|
|
407
|
+
name: 'Plugin cache hook freshness',
|
|
408
|
+
status: fixed === staleHooks.length ? 'pass' : 'warn',
|
|
409
|
+
message: `${fixed}/${staleHooks.length} stale hook(s) updated from source`,
|
|
410
|
+
details: staleHooks.map(h => `Updated: ${h}`),
|
|
411
|
+
fixSuggestion: 'Restart Claude Code to pick up updated hooks',
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
return {
|
|
415
|
+
name: 'Plugin cache hook freshness',
|
|
416
|
+
status: 'warn',
|
|
417
|
+
message: `${staleHooks.length} stale hook(s) in plugin cache`,
|
|
418
|
+
details: staleHooks.map(h => `Stale: ${h}`),
|
|
419
|
+
fixSuggestion: 'Run: specweave doctor --fix (or specweave update)',
|
|
420
|
+
};
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Locate the authoritative source of user-prompt-submit.sh.
|
|
424
|
+
*
|
|
425
|
+
* Resolution order:
|
|
426
|
+
* 1. Walk up from __dirname to find package.json with name "specweave"
|
|
427
|
+
* 2. Global npm install via `npm root -g`
|
|
428
|
+
* 3. ~/.claude/commands/sw/hooks/ (installed by specweave refresh-plugins)
|
|
429
|
+
* 4. ~/.claude/plugins/marketplaces/specweave/
|
|
430
|
+
*/
|
|
431
|
+
findSourceHookPath() {
|
|
432
|
+
const hookRelPath = join('plugins', 'specweave', 'hooks', 'user-prompt-submit.sh');
|
|
433
|
+
// 1. Walk up from __dirname
|
|
434
|
+
try {
|
|
435
|
+
let dir = __dirname;
|
|
436
|
+
for (let i = 0; i < 10; i++) {
|
|
437
|
+
const pkgPath = join(dir, 'package.json');
|
|
438
|
+
if (existsSync(pkgPath)) {
|
|
439
|
+
try {
|
|
440
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
441
|
+
if (pkg.name === 'specweave') {
|
|
442
|
+
const hookPath = join(dir, hookRelPath);
|
|
443
|
+
if (existsSync(hookPath))
|
|
444
|
+
return hookPath;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
catch { /* continue */ }
|
|
448
|
+
}
|
|
449
|
+
const parent = join(dir, '..');
|
|
450
|
+
if (parent === dir)
|
|
451
|
+
break;
|
|
452
|
+
dir = parent;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
catch { /* fallback */ }
|
|
456
|
+
// 2. Global npm install
|
|
457
|
+
try {
|
|
458
|
+
const { execSync: exec } = require('node:child_process');
|
|
459
|
+
const npmRoot = exec('npm root -g', { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
460
|
+
const globalPath = join(npmRoot, 'specweave', hookRelPath);
|
|
461
|
+
if (existsSync(globalPath))
|
|
462
|
+
return globalPath;
|
|
463
|
+
}
|
|
464
|
+
catch { /* fallback */ }
|
|
465
|
+
// 3. ~/.claude/commands/sw/hooks/ (installed by refresh-plugins)
|
|
466
|
+
const home = homedir();
|
|
467
|
+
const commandsHookPath = join(home, '.claude', 'commands', 'sw', 'hooks', 'user-prompt-submit.sh');
|
|
468
|
+
if (existsSync(commandsHookPath))
|
|
469
|
+
return commandsHookPath;
|
|
470
|
+
// 4. Marketplace path
|
|
471
|
+
const marketplacePath = join(home, '.claude', 'plugins', 'marketplaces', 'specweave', hookRelPath);
|
|
472
|
+
if (existsSync(marketplacePath))
|
|
473
|
+
return marketplacePath;
|
|
474
|
+
return null;
|
|
475
|
+
}
|
|
331
476
|
// ─── Helpers ───────────────────────────────────────────────────────────
|
|
332
477
|
/** List immediate subdirectories of a path. */
|
|
333
478
|
listDirs(dir) {
|
|
@@ -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;;;GAGG;AAEH,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,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,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAOzC,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,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAC3D,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,uBAAuB,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;QAChE,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;;;OAGG;IACK,kBAAkB,CAAC,GAAY;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,sCAAsC;aAChD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,8CAA8C;QAC9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAEhD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBAC9B,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,yBAAyB;aACnC,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,qCAAqC;gBAC9D,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,aAAa,EAAE,WAAW,MAAM,CAAC,MAAM,gBAAgB;aACxD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,4BAA4B;YACrD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,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,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,iCAAiC;gBAC5D,OAAO;gBACP,aAAa,EAAE,WAAW,QAAQ,CAAC,MAAM,oBAAoB;aAC9D,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;;OAEG;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,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAChD,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,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,6CAA6C;wBACvE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC1C,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,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,qCAAqC;gBAC/D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1C,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,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;wBAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACzB,IAAI,CAAC;gCACH,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACvE,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,EAAE,OAAO,CAAC,CAAC;oBAClG,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;;;OAGG;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,GAAa,EAAE,CAAC;QAEhC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAEhD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBAC9B,kEAAkE;gBAClE,gEAAgE;gBAChE,mEAAmE;gBACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAChD,MAAM,WAAW,GACf,QAAQ,KAAK,WAAW;oBACxB,QAAQ,KAAK,WAAW;oBACxB,QAAQ,KAAK,cAAc,CAAC;gBAE9B,IAAI,CAAC,WAAW,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,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,8BAA8B;aACxC,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,6BAA6B;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,sCAAsC;gBACnE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/C,aAAa,EAAE,WAAW,UAAU,CAAC,MAAM,oBAAoB;aAChE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,6BAA6B;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,6BAA6B;YAC1D,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/C,aAAa,EAAE,6BAA6B;SAC7C,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACK,6BAA6B,CAAC,GAAY;QAChD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAErF,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;;;;;;;;OAQG;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,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjF,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,iEAAiE;QACjE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACnG,IAAI,UAAU,CAAC,gBAAgB,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAE1D,sBAAsB;QACtB,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;IAED,yEAAyE;IACjE,WAAW,CAAC,GAAW,EAAE,MAAc;QAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;gBACtD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAChC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;wBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;oBACvD,CAAC;yBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAClD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-scanner.d.ts","sourceRoot":"","sources":["../../../../src/core/fabric/security-scanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAyB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"security-scanner.d.ts","sourceRoot":"","sources":["../../../../src/core/fabric/security-scanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAyB,MAAM,sBAAsB,CAAC;AA2bvF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CA2E1E"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
/** Safe DCI patterns — the canonical skill-memories lookup */
|
|
7
7
|
const SAFE_DCI_CONTEXTS = [
|
|
8
|
-
|
|
8
|
+
/^\s*!\s*`for\s+d\s+in\s+\.specweave\/skill-memories/,
|
|
9
9
|
];
|
|
10
10
|
/** Temp-dir path patterns (reused across short-form and long-form rm) */
|
|
11
11
|
const TEMP_DIR_PATTERNS = [
|
|
@@ -260,98 +260,98 @@ const PATTERN_CHECKS = [
|
|
|
260
260
|
// --- DCI Block Abuse (critical) ---
|
|
261
261
|
// DCI blocks are shell commands in SKILL.md executed via ! prefix.
|
|
262
262
|
{
|
|
263
|
-
pattern:
|
|
263
|
+
pattern: /^\s*!\s*`[^`]*(?:~\/\.ssh\/|~\/\.aws\/|\.env\b|\.gnupg\/)/,
|
|
264
264
|
severity: 'critical',
|
|
265
265
|
category: 'dci-abuse',
|
|
266
266
|
message: 'DCI block reads credential files (~/.ssh/, ~/.aws/, .env)',
|
|
267
267
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
268
268
|
},
|
|
269
269
|
{
|
|
270
|
-
pattern:
|
|
270
|
+
pattern: /^\s*!\s*`[^`]*\b(?:curl|wget)\b/,
|
|
271
271
|
severity: 'critical',
|
|
272
272
|
category: 'dci-abuse',
|
|
273
273
|
message: 'DCI block uses curl/wget for network access',
|
|
274
274
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
|
-
pattern:
|
|
277
|
+
pattern: /^\s*!\s*`[^`]*\b(?:fetch|nc|ncat|netcat)\b/,
|
|
278
278
|
severity: 'critical',
|
|
279
279
|
category: 'dci-abuse',
|
|
280
280
|
message: 'DCI block uses fetch or netcat for network access',
|
|
281
281
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
282
282
|
},
|
|
283
283
|
{
|
|
284
|
-
pattern:
|
|
284
|
+
pattern: /^\s*!\s*`[^`]*(?:>\s*.*(?:CLAUDE\.md|AGENTS\.md|\.claude\/|\.specweave\/))/,
|
|
285
285
|
severity: 'critical',
|
|
286
286
|
category: 'dci-abuse',
|
|
287
287
|
message: 'DCI block writes to agent config files (CLAUDE.md, AGENTS.md, .claude/)',
|
|
288
288
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
289
289
|
},
|
|
290
290
|
{
|
|
291
|
-
pattern:
|
|
291
|
+
pattern: /^\s*!\s*`[^`]*(?:tee|sed\s+-i|echo\s+.*>>)\s*.*(?:CLAUDE\.md|AGENTS\.md|\.claude\/)/,
|
|
292
292
|
severity: 'critical',
|
|
293
293
|
category: 'dci-abuse',
|
|
294
294
|
message: 'DCI block modifies agent config via tee/sed/echo append',
|
|
295
295
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
296
296
|
},
|
|
297
297
|
{
|
|
298
|
-
pattern:
|
|
298
|
+
pattern: /^\s*!\s*`[^`]*\b(?:base64\s+(?:-[dD]|--decode)|atob\s*\()/,
|
|
299
299
|
severity: 'critical',
|
|
300
300
|
category: 'dci-abuse',
|
|
301
301
|
message: 'DCI block contains base64 decoding (obfuscation)',
|
|
302
302
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
|
-
pattern:
|
|
305
|
+
pattern: /^\s*!\s*`[^`]*\\x[0-9a-fA-F]{2}(?:\\x[0-9a-fA-F]{2}){3,}/,
|
|
306
306
|
severity: 'critical',
|
|
307
307
|
category: 'dci-abuse',
|
|
308
308
|
message: 'DCI block contains hex escape sequences (obfuscation)',
|
|
309
309
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
310
310
|
},
|
|
311
311
|
{
|
|
312
|
-
pattern:
|
|
312
|
+
pattern: /^\s*!\s*`[^`]*\beval\b/,
|
|
313
313
|
severity: 'critical',
|
|
314
314
|
category: 'dci-abuse',
|
|
315
315
|
message: 'DCI block uses eval for code execution',
|
|
316
316
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
317
317
|
},
|
|
318
318
|
{
|
|
319
|
-
pattern:
|
|
319
|
+
pattern: /^\s*!\s*`[^`]*\b(?:curl|wget)\b[^`]*\|\s*(?:ba|z|da|k)?sh\b/,
|
|
320
320
|
severity: 'critical',
|
|
321
321
|
category: 'dci-abuse',
|
|
322
322
|
message: 'DCI block pipes downloaded content to shell (download-and-execute)',
|
|
323
323
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
324
324
|
},
|
|
325
325
|
{
|
|
326
|
-
pattern:
|
|
326
|
+
pattern: /^\s*!\s*`[^`]*(?:\/dev\/tcp\/|bash\s+-i\s+>&|mkfifo|nc\s+-[a-z]*e)/,
|
|
327
327
|
severity: 'critical',
|
|
328
328
|
category: 'dci-abuse',
|
|
329
329
|
message: 'DCI block establishes a reverse shell connection',
|
|
330
330
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
|
-
pattern:
|
|
333
|
+
pattern: /^\s*!\s*`[^`]*\bsudo\b/,
|
|
334
334
|
severity: 'critical',
|
|
335
335
|
category: 'dci-abuse',
|
|
336
336
|
message: 'DCI block uses sudo for privilege escalation',
|
|
337
337
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
338
338
|
},
|
|
339
339
|
{
|
|
340
|
-
pattern:
|
|
340
|
+
pattern: /^\s*!\s*`[^`]*\brm\s+-[a-zA-Z]*r[a-zA-Z]*f/,
|
|
341
341
|
severity: 'critical',
|
|
342
342
|
category: 'dci-abuse',
|
|
343
343
|
message: 'DCI block executes destructive rm -rf command',
|
|
344
344
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
345
345
|
},
|
|
346
346
|
{
|
|
347
|
-
pattern:
|
|
347
|
+
pattern: /^\s*!\s*`[^`]*(?:cat|less|head|tail|strings)\s+[^`]*(?:~\/\.|\/home\/[^`]*\.)/,
|
|
348
348
|
severity: 'critical',
|
|
349
349
|
category: 'dci-abuse',
|
|
350
350
|
message: 'DCI block reads from home directory sensitive paths',
|
|
351
351
|
safeContexts: SAFE_DCI_CONTEXTS,
|
|
352
352
|
},
|
|
353
353
|
{
|
|
354
|
-
pattern:
|
|
354
|
+
pattern: /^\s*!\s*`[^`]*(?:cat|tar|zip)\s+[^|`]*\|\s*(?:curl|wget|nc)\b/,
|
|
355
355
|
severity: 'critical',
|
|
356
356
|
category: 'dci-abuse',
|
|
357
357
|
message: 'DCI block pipes local data to a network command',
|
|
@@ -383,6 +383,10 @@ const PATTERN_CHECKS = [
|
|
|
383
383
|
message: 'External URL reference detected',
|
|
384
384
|
},
|
|
385
385
|
];
|
|
386
|
+
/** All malicious DCI pattern regexes for the two-pass safe check */
|
|
387
|
+
const MALICIOUS_DCI_REGEXES = PATTERN_CHECKS
|
|
388
|
+
.filter(c => c.category === 'dci-abuse')
|
|
389
|
+
.map(c => new RegExp(c.pattern.source, c.pattern.flags));
|
|
386
390
|
/**
|
|
387
391
|
* Checks if a SKILL.md YAML frontmatter contains a `name:` field.
|
|
388
392
|
* This is a medium-severity issue because it strips the plugin namespace prefix.
|
|
@@ -446,8 +450,22 @@ export function scanSkillContent(content) {
|
|
|
446
450
|
// Check if this is a safe context (e.g., rm in temp dirs)
|
|
447
451
|
if (check.safeContexts) {
|
|
448
452
|
const isSafe = check.safeContexts.some(ctx => ctx.test(line));
|
|
449
|
-
if (isSafe)
|
|
450
|
-
|
|
453
|
+
if (isSafe) {
|
|
454
|
+
// For DCI safe contexts: also verify no malicious DCI pattern matches
|
|
455
|
+
// (prevents appended-command bypass after safe prefix)
|
|
456
|
+
if (check.category === 'dci-abuse') {
|
|
457
|
+
const hasMaliciousDci = MALICIOUS_DCI_REGEXES.some(p => p.test(line));
|
|
458
|
+
if (hasMaliciousDci) {
|
|
459
|
+
// Not actually safe — fall through to report finding
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
continue;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
continue;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
451
469
|
}
|
|
452
470
|
// Downgrade severity inside balanced fenced code blocks only.
|
|
453
471
|
// DCI-abuse findings are NEVER downgraded — DCI blocks execute even inside code fences.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-scanner.js","sourceRoot":"","sources":["../../../../src/core/fabric/security-scanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,8DAA8D;AAC9D,MAAM,iBAAiB,GAAG;IACxB,
|
|
1
|
+
{"version":3,"file":"security-scanner.js","sourceRoot":"","sources":["../../../../src/core/fabric/security-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle Hook Dispatcher
|
|
3
|
+
*
|
|
4
|
+
* Reads hooks config from config.json and dispatches configured actions
|
|
5
|
+
* at lifecycle points (increment planned, task completed, increment done).
|
|
6
|
+
*
|
|
7
|
+
* All dispatches are:
|
|
8
|
+
* - Non-blocking (fire-and-forget async)
|
|
9
|
+
* - Error-isolated (catch + log, never crash)
|
|
10
|
+
* - Skipped in test environment (process.env.VITEST)
|
|
11
|
+
*
|
|
12
|
+
* Part of increment 0298: Hook Lifecycle Wiring
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Options for dispatch methods (internal use)
|
|
16
|
+
*/
|
|
17
|
+
export interface DispatchOptions {
|
|
18
|
+
/** Bypass the test environment guard (for unit testing the dispatcher itself) */
|
|
19
|
+
_bypassTestGuard?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Dispatches configured actions at lifecycle hook points.
|
|
23
|
+
*
|
|
24
|
+
* Usage (fire-and-forget):
|
|
25
|
+
* ```ts
|
|
26
|
+
* void LifecycleHookDispatcher.onIncrementPlanned(root, id).catch(() => {});
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class LifecycleHookDispatcher {
|
|
30
|
+
/**
|
|
31
|
+
* Dispatch post-increment-planning hooks.
|
|
32
|
+
*
|
|
33
|
+
* Checks hooks.post_increment_planning.auto_create_github_issue
|
|
34
|
+
* and calls autoCreateExternalIssue if true.
|
|
35
|
+
*/
|
|
36
|
+
static onIncrementPlanned(projectRoot: string, incrementId: string, options?: DispatchOptions): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Dispatch post-task-completion hooks.
|
|
39
|
+
*
|
|
40
|
+
* Checks hooks.post_task_completion for:
|
|
41
|
+
* - sync_tasks_md: triggers LivingDocsSync.syncIncrement
|
|
42
|
+
* - external_tracker_sync: triggers SyncCoordinator.syncIncrementClosure
|
|
43
|
+
*/
|
|
44
|
+
static onTaskCompleted(projectRoot: string, incrementId: string, options?: DispatchOptions): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Dispatch post-increment-done hooks.
|
|
47
|
+
*
|
|
48
|
+
* Checks hooks.post_increment_done for:
|
|
49
|
+
* - sync_living_docs: triggers LivingDocsSync.syncIncrement
|
|
50
|
+
* - close_github_issue: triggers SyncCoordinator.syncIncrementClosure
|
|
51
|
+
* - update_living_docs_first: if true, living docs sync runs before closure
|
|
52
|
+
*/
|
|
53
|
+
static onIncrementDone(projectRoot: string, incrementId: string, options?: DispatchOptions): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Check if dispatch should be skipped (test environment guard)
|
|
56
|
+
*/
|
|
57
|
+
private static shouldSkip;
|
|
58
|
+
/**
|
|
59
|
+
* Read hooks configuration from config.json
|
|
60
|
+
*/
|
|
61
|
+
private static readHooksConfig;
|
|
62
|
+
/**
|
|
63
|
+
* Log error without propagating
|
|
64
|
+
*/
|
|
65
|
+
private static logError;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=LifecycleHookDispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifecycleHookDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/LifecycleHookDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC;;;;;OAKG;WACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;;;;OAMG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;;;OAOG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IA8ChB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB;;OAEG;mBACkB,eAAe;IAQpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;CAOxB"}
|